注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)數(shù)據(jù)庫MongoDB進階與實戰(zhàn):微服務(wù)整合、性能優(yōu)化、架構(gòu)管理

MongoDB進階與實戰(zhàn):微服務(wù)整合、性能優(yōu)化、架構(gòu)管理

MongoDB進階與實戰(zhàn):微服務(wù)整合、性能優(yōu)化、架構(gòu)管理

定 價:¥118.00

作 者: 唐卓章 著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787121408274 出版時間: 2021-04-01 包裝: 平裝
開本: 16開 頁數(shù): 508 字數(shù):  

內(nèi)容簡介

  本書圍繞如何用好MongoDB這個復雜命題,利用大部分篇幅講述了MongoDB在應(yīng)用開發(fā)方面的各種進階技巧,同時也介紹了MongoDB 4.0版本的事務(wù)特性及微服務(wù)相關(guān)的技術(shù)范例。很多基本的數(shù)據(jù)庫問題都可以從MongoDB的官方文檔中找到答案,但官方文檔中在MongoDB周邊技術(shù)棧的整合、系統(tǒng)管理及調(diào)優(yōu)方面仍然缺乏一些富有針對性的內(nèi)容,所以本書在結(jié)合一些實踐案例的前提下,以開發(fā)管理者的角度對MongoDB技術(shù)進行了系統(tǒng)地梳理,希望能夠讓讀者的學習達到事半功倍的效果。相信本書會對應(yīng)用MongoDB的開發(fā)人員具有廣泛的指導意義。

作者簡介

  唐卓章(博客園ID:美碼師)。十年研發(fā)老兵,持續(xù)關(guān)注NoSQL分布式數(shù)據(jù)庫技術(shù),在系統(tǒng)高可用、彈性擴展、性能調(diào)優(yōu)等方面有著豐富的實踐及管理經(jīng)驗。MongoDB中文社區(qū)核心成員之一。常活躍于Mongoing社區(qū)原創(chuàng)及問答板塊。華為云 MongoDB 技術(shù)專家。致力于萬物互聯(lián)事業(yè),負責物聯(lián)網(wǎng)平臺系統(tǒng)的架設(shè)及研發(fā)工作。

圖書目錄

第1部分 MongoDB入門
第1章 什么是MongoDB 1
1.1 認識MongoDB 1
1.1.1 面向文檔設(shè)計 1
1.1.2 特性 3
1.1.3 優(yōu)勢 4
1.1.4 需要克服的困難 6
1.2 類比SQL模型 7
1.2.1 數(shù)據(jù)結(jié)構(gòu) 7
1.2.2 類SQL語句 8
第2章 體驗MongoDB 11
2.1 安裝MongoDB 11
2.1.1 Linux環(huán)境下的安裝 11
2.1.2 Windows環(huán)境下的安裝 15
2.2 使用mongo shell 19
2.3 插入文檔 22
2.4 查詢文檔 24
2.4.1 查詢?nèi)繑?shù)據(jù) 24
2.4.2 指定條件查詢 25
2.4.3 排序、分頁 25
2.4.4 使用投射 25
2.4.5 查詢限定符 26
2.5 更新文檔 27
2.5.1 update 命令 27
2.5.2 findAndModify命令 29
2.5.3 更新操作符 30
2.6 刪除文檔 31
2.6.1 刪除單個文檔 31
2.6.2 刪除指定條件文檔 31
2.6.3 刪除全部文檔 32
2.6.4 返回被刪除文檔 32
2.7 使用聚合 33
2.8 計算文檔大小 34
2.8.1 查看集合大小 34
2.8.2 計算文檔大小 35
2.9 小技巧――定義mongo shell環(huán)境 36
第3章 數(shù)據(jù)模型 37
3.1 BSON協(xié)議與類型 37
3.1.1 JSON 標準 37
3.1.2 BSON和JSON 38
3.1.3 BSON的數(shù)據(jù)類型 39
3.2 使用日期 40
3.3 ObjectId生成器 41
3.4 數(shù)組、內(nèi)嵌 44
3.4.1 內(nèi)嵌文檔 45
3.4.2 數(shù)組 45
3.4.3 嵌套型的數(shù)組 47
3.5 固定集合 48
3.5.1 固定集合簡介 48
3.5.2 使用示例 49
3.5.3 特征與限制 51
3.5.4 適用場景 52
3.6 小技巧――使用固定集合實現(xiàn)FIFO
隊列 52
第4章 索引介紹 56
4.1 索引簡述 56
4.2 單鍵、復合索引 57
4.2.1 單字段索引 57
4.2.2 復合索引 58
4.3 數(shù)組索引 58
4.4 地理空間索引 59
4.5 唯一性約束 60
4.6 TTL索引 63
4.7 其他索引特性 64
4.7.1 條件索引 64
4.7.2 稀疏索引(sparse=true) 65
4.7.3 文本索引 66
4.7.4 模糊索引 66
4.8 小技巧――使用explain命令驗證
優(yōu)化 67
第5章 副本集 72
5.1 副本集架構(gòu) 72
5.2 集群選舉 73
5.2.1 Raft選舉算法 73
5.2.2 MongoDB 實現(xiàn)的擴展 77
5.2.3 MongoDB選舉介紹 77
5.2.4 副本集模式 79
5.3 實時復制 81
5.3.1 oplog復制 81
5.3.2 冪等性 84
5.3.3 復制延遲 84
5.3.4 初始化同步 85
5.3.5 數(shù)據(jù)回滾 86
5.4 自動故障轉(zhuǎn)移 86
5.5 搭建副本集 89
5.5.1 安裝副本集 89
5.5.2 創(chuàng)建用戶 92
5.5.3 寫入數(shù)據(jù) 92
5.5.4 主備節(jié)點切換 93
5.6 小技巧――檢查復制的延遲情況 93
第6章 分片 97
6.1 分片集群架構(gòu) 97
6.1.1 分片簡介 97
6.1.2 分片集群架構(gòu) 97
6.2 分片策略 98
6.2.1 什么是chunk 99
6.2.2 分片算法 100
6.2.3 分片鍵的選擇 101
6.3 讀寫分發(fā)模式 101
6.3.1 數(shù)據(jù)分發(fā)流程 101
6.3.2 避免廣播操作 103
6.3.3 保證索引唯一性 104
6.4 數(shù)據(jù)均衡 104
6.4.1 均衡的方式 104
6.4.2 chunk 分裂 105
6.4.3 自動均衡 106
6.4.4 數(shù)據(jù)均衡帶來的問題 108
6.5 使用mtools搭建集群 108
6.5.1 mtools 介紹 109
6.5.2 準備工作 109
6.5.3 安裝 mtools 109
6.5.4 創(chuàng)建分片集群 110
6.5.5 停止、啟動 112
6.6 使用分片集群 112
6.7 小技巧――使用標簽 114
6.7.1 分片標簽 114
6.7.2 使用場景 115
第2部分 MongoDB微服務(wù)開發(fā)
第7章 微服務(wù)入門 117
7.1 微服務(wù)定義 117
7.1.1 什么是微服務(wù) 117
7.1.2 理解微服務(wù) 117
7.1.3 微服務(wù)的通用特性 120
7.1.4 微服務(wù)不是“銀彈” 121
7.2 微服務(wù)基礎(chǔ)設(shè)施 121
7.2.1 服務(wù)注冊 121
7.2.2 服務(wù)發(fā)現(xiàn) 122
7.2.3 API網(wǎng)關(guān) 123
7.2.4 服務(wù)容錯 123
7.2.5 服務(wù)監(jiān)控 124
7.2.6 配置中心 124
7.2.7 接口調(diào)用 124
7.2.8 容器化 125
7.3 CAP與BASE理論 125
7.3.1 CAP 理論 125
7.3.2 BASE 理論 126
7.4 為什么MongoDB適合微服務(wù) 127
第8章 使用Java操作MongoDB 131
8.1 搭建Java開發(fā)環(huán)境 131
8.1.1 安裝JDK 131
8.1.2 安裝IDEA 132
8.2 安裝Robo 3T 134
8.2.1 Robo 3T介紹 134
8.2.2 下載安裝 134
8.2.3 連接數(shù)據(jù)庫 135
8.2.4 操作數(shù)據(jù) 136
8.3 使用MongoDB Java Driver 137
8.3.1 引入框架 137
8.3.2 連接數(shù)據(jù)庫 137
8.3.3 使用構(gòu)建器 138
8.4 實例:文章列表的存儲與檢索 141
8.4.1 集合操作 141
8.4.2 文檔操作 143
8.5 異步驅(qū)動 146
8.5.1 理解響應(yīng)式 146
8.5.2 使用響應(yīng)式流 147
8.6 使用CommandListener檢測慢
操作 152
8.7 MongoDB Java Driver的工作原理 155
8.7.1 游標 155
8.7.2 連接池 158
8.7.3 故障轉(zhuǎn)移 160
8.7.4 連接池相關(guān)參數(shù) 161
8.8 小技巧――如何監(jiān)視驅(qū)動的
連接數(shù) 161
第9章 SpringBoot框架整合 165
9.1 SpringBoot簡介 165
9.1.1 SpringBoot是什么 165
9.1.2 “腳手架”風格 167
9.2 第一個SpringBoot項目 168
9.2.1 初始化項目 168
9.2.2 添加啟動類 172
9.2.3 編寫 Echo 接口 172
9.2.4 配置文件 173
9.2.5 啟動程序 174
9.2.6 熱加載 175
9.3 Spring Data框架介紹 176
9.3.1 Spring Data 176
9.3.2 Spring Data MongoDB 178
9.4 使用Spring Data MongoDB操作
數(shù)據(jù)庫 179
9.4.1 引入依賴 179
9.4.2 配置文件 180
9.4.3 數(shù)據(jù)模型 180
9.4.4 數(shù)據(jù)操作 181
9.4.5 啟動測試 183
9.5 高級操作 184
9.5.1 實現(xiàn)投射 184
9.5.2 使用 QBE 186
9.5.3 自定義 Repository 方法 187
9.6 自定義配置 190
9.6.1 Spring Boot 通用配置 190
9.6.2 JavaConfig 配置 191
9.6.3 自動配置的原理 192
9.7 實現(xiàn)單元測試 194
9.7.1 使用 flapdoodle.embed.mongo 194
9.7.2 原理解析 198
9.7.3 定制化集成 200
9.8 多數(shù)據(jù)源 203
9.9 使用審計功能 208
9.9.1 使用注解 208
9.9.2 實現(xiàn)審計 209
9.10 小技巧――自定義數(shù)據(jù)序列化
方式 210
第10章 項目實戰(zhàn) 215
10.1 初始化項目 215
10.2 實現(xiàn)資源抓取 219
10.3 發(fā)布RssFeed 229
10.4 統(tǒng)計功能 232
10.5 開發(fā)門戶界面 235
10.5.1 前端組件 235
10.5.2 RSS門戶應(yīng)用 237
10.5.3 實現(xiàn)后臺接口 249
10.6 打包應(yīng)用程序 252
10.6.1 使用spring-boot-maven-
plugin插件 252
10.6.2 使用 assembly 插件 253
第3部分 MongoDB高效進階
第11章 性能基準 257
11.1 性能基準 257
11.1.1 了解基準測試 257
11.1.2 吞吐量、并發(fā)數(shù)、響應(yīng)
時間 258
11.2 WiredTiger讀寫模型 259
11.2.1 讀緩存 259
11.2.2 寫緩沖 260
11.2.3 緩存頁管理 262
11.2.4 數(shù)據(jù)壓縮 264
11.2.5 小結(jié) 265
11.3 性能監(jiān)控工具 265
11.3.1 mongostat 265
11.3.2 mongotop 267
11.3.3 Profiler模塊 269
11.3.4 db.currentOp 272
11.4 使用YCSB測試MongoDB性能 277
11.4.1 YCSB 簡介 277
11.4.2 執(zhí)行壓力測試 279
11.4.3 生成時序指標序列 284
11.5 使用 nmon監(jiān)視服務(wù)器性能 285
第12章 合理使用索引 288
12.1 索引檢索原理 288
12.2 索引檢索范例 291
12.3 覆蓋索引 295
12.4 查詢計劃 298
12.4.1 查詢計劃構(gòu)成 298
12.4.2 explain 命令 299
12.5 實戰(zhàn):查詢案例分析 304
12.6 查詢緩存原理 322
12.6.1 工作流程 322
12.6.2 案例 323
12.6.3 內(nèi)部原理 326
12.7 強制命中 328
12.7.1 使用 hint方法 328
12.7.2 使用IndexFilter方法 329
12.8 索引正交 331
12.9 使用MongoDB Compass 332
12.10 優(yōu)化原則 333
第13章 并發(fā)優(yōu)化 337
13.1 MongoDB的鎖模式 337
13.2 MVCC 340
13.3 原子性操作 342
13.4 樂觀鎖 345
13.4.1 電影院訂座的案例 345
13.4.2 版本號模式 348
13.5 緩解行鎖競爭 349
13.6 避免重復數(shù)據(jù) 353
13.7 那些影響并發(fā)的操作 356
第14章 應(yīng)用設(shè)計調(diào)優(yōu) 358
14.1 應(yīng)用范式設(shè)計 358
14.1.1 什么是范式 358
14.1.2 反范式設(shè)計 360
14.2 嵌套設(shè)計 362
14.2.1 在文檔內(nèi)使用嵌套 362
14.2.2 表達關(guān)聯(lián) 363
14.3 桶模式 365
14.3.1 桶模式 365
14.3.2 桶模式案例 366
14.4 海量數(shù)據(jù)分頁 374
14.4.1 傳統(tǒng)分頁模式 375
14.4.2 使用偏移量 376
14.4.3 折中處理 380
14.5 批操作 381
14.5.1 批量讀 381
14.5.2 批量寫 383
14.6 讀寫分離與一致性 385
14.6.1 讀寫分離 385
14.6.2 讀寫關(guān)注 387
14.6.3 讀自身的寫入(Read your
own writes) 390
14.6.4 因果一致性 391
14.6.5 小結(jié) 392
14.7 聚合范例 392
14.7.1 聚合框架介紹 392
14.7.2 找出重復數(shù)據(jù) 393
14.7.3 寫入中間表 393
14.7.4 表連接(join) 397
14.7.5 使用要點 401
第15章 高級特性 402
15.1 Change Stream介紹 402
15.2 Change Stream案例:數(shù)據(jù)遷移 408
15.2.1 關(guān)鍵點 409
15.2.2 實戰(zhàn):使用 Change Stream
實現(xiàn)增量遷移 410
15.2.3 小結(jié) 420
15.3 多文檔事務(wù) 421
15.3.1 事務(wù)簡介 421
15.3.2 MongoDB 中的事務(wù) 422
15.4 基于Spring開發(fā)事務(wù) 426
15.4.1 在驅(qū)動中實現(xiàn)事務(wù) 426
15.4.2 使用 Spring Data 實現(xiàn)事務(wù) 428
15.5 事務(wù)實現(xiàn)原理 432
15.5.1 MVCC 與快照的一致性 432
15.5.2 事務(wù)持久性 434
15.5.3 讀寫隔離設(shè)定 435
15.6 寫沖突模式 437
15.7 使用事務(wù)的限制 440
第4部分 MongoDB架構(gòu)管理
第16章 安全管理 441
16.1 MongoDB如何鑒權(quán) 441
16.1.1 初體驗 441
16.1.2 理解身份認證與授權(quán) 443
16.1.3 身份認證方式 443
16.1.4 RBAC 訪問控制 446
16.2 角色管理 447
16.2.1 角色管理命令 447
16.2.2 系統(tǒng)內(nèi)置角色 448
16.2.3 創(chuàng)建自定義角色 449
16.3 最小權(quán)限原則 450
16.4 安全最佳實踐 452
第17章 高可靠 457
17.1 節(jié)點部署優(yōu)化 457
17.1.1 硬件規(guī)劃 457
17.1.2 系統(tǒng)調(diào)優(yōu) 458
17.1.3 數(shù)據(jù)庫配置 460
17.2 集群高可靠 461
17.2.1 反親和部署 462
17.2.2 避免集中存儲 462
17.2.3 警惕資源超分 463
17.3 應(yīng)用層高可靠 463
17.3.1 故障隔離 463
17.3.2 故障轉(zhuǎn)移/恢復 465
17.4 備份可靠性 466
17.4.1 邏輯備份 466
17.4.2 物理備份 468
17.4.3 增量備份 469
17.5 容災可靠性 470
17.5.1 同城災備 471
17.5.2 異地災備 472
17.5.3 異地多活 473
第18章 治理經(jīng)驗 476
18.1 強化約束 476
18.1.1 使用 JSON Schema 476
18.1.2 管理文檔結(jié)構(gòu) 478
18.2 使用Mongobee實現(xiàn)升級 478
18.2.1 模式演進 478
18.2.2 Mongobee 介紹 479
18.2.3 范例 480
18.3 規(guī)范與自動化 484
18.3.1 開發(fā)規(guī)范 485
18.3.2 實現(xiàn)自動化 486
18.4 運維管理 487
18.4.1 容量規(guī)劃 487
18.4.2 監(jiān)控時關(guān)注哪些指標 490

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號