-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
MongoDB進階與實戰:微服務整合、性能優化、架構管理 版權信息
- ISBN:9787121408274
- 條形碼:9787121408274 ; 978-7-121-40827-4
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
MongoDB進階與實戰:微服務整合、性能優化、架構管理 本書特色
適讀人群 :本書適合希望了解、使用MongoDB數據庫的技術從業者。 對有一定基礎的研發人員,通過閱讀本書可以更深入地了解MongoDB在性能調優、集群技術方面的一些原理。 對初學者,可以根據書中的一些案例快速開發基于 MongoDB 的微服務應用。 對系統架構師,可以通過本書了解 MongoDB 的一些進階特性及原理,并獲得在技術選型、架構管理方面的指導信息。MongoDB數據庫技術的掌握:包括基本的文檔模型概念和數據操作,以及集群高可用、數據分片方面的知識。 MongoDB整合微服務的技能:需要對微服務周邊的技術框架有一定的掌握。本書以當前流行的 Java 微服務技術棧為背景,介紹了從MongoDB Java Driver、Spring Data Mongo(ODM層)到上層應用整合的各種實戰范例。 MongoDB高階技巧的掌握:包括MongoDB系統性能調優及MongoDB 架構高可用、安全性、高效運維管理方面的一些知識和經驗。
MongoDB進階與實戰:微服務整合、性能優化、架構管理 內容簡介
本書圍繞如何用好MongoDB這個復雜命題, 利用大部分篇幅講述了MongoDB在應用開發方面的各種進階技巧, 同時對MongoDB 4.0版本的事務特性, 以及微服務相關的技術范例也進行了介紹。很多基本的數據庫問題都可以從MongoDB官方文檔中找到答案, 但官方文檔中在MongoDB周邊技術棧的整合、系統管理及調優方面仍然缺乏一些富有針對性的內容, 所以本書在結合一些實踐案例的前提下, 以開發管理者的角度對MongoDB技術進行了系統性的梳理, 希望能夠讓讀者的學習達到事半功倍的效果。
MongoDB進階與實戰:微服務整合、性能優化、架構管理 目錄
第1部分 MongoDB入門
第1章 什么是MongoDB 1
1.1 認識MongoDB 1
1.1.1 面向文檔設計 1
1.1.2 特性 3
1.1.3 優勢 4
1.1.4 需要克服的困難 6
1.2 類比SQL模型 7
1.2.1 數據結構 7
1.2.2 類SQL語句 8
第2章 體驗MongoDB 11
2.1 安裝MongoDB 11
2.1.1 Linux環境下的安裝 11
2.1.2 Windows環境下的安裝 15
2.2 使用mongo shell 19
2.3 插入文檔 22
2.4 查詢文檔 24
2.4.1 查詢全部數據 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環境 36
第3章 數據模型 37
3.1 BSON協議與類型 37
3.1.1 JSON 標準 37
3.1.2 BSON和JSON 38
3.1.3 BSON的數據類型 39
3.2 使用日期 40
3.3 ObjectId生成器 41
3.4 數組、內嵌 44
3.4.1 內嵌文檔 45
3.4.2 數組 45
3.4.3 嵌套型的數組 47
3.5 固定集合 48
3.5.1 固定集合簡介 48
3.5.2 使用示例 49
3.5.3 特征與限制 51
3.5.4 適用場景 52
3.6 小技巧――使用固定集合實現FIFO
隊列 52
第4章 索引介紹 56
4.1 索引簡述 56
4.2 單鍵、復合索引 57
4.2.1 單字段索引 57
4.2.2 復合索引 58
4.3 數組索引 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命令驗證
優化 67
第5章 副本集 72
5.1 副本集架構 72
5.2 集群選舉 73
5.2.1 Raft選舉算法 73
5.2.2 MongoDB 實現的擴展 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 數據回滾 86
5.4 自動故障轉移 86
5.5 搭建副本集 89
5.5.1 安裝副本集 89
5.5.2 創建用戶 92
5.5.3 寫入數據 92
5.5.4 主備節點切換 93
5.6 小技巧――檢查復制的延遲情況 93
第6章 分片 97
6.1 分片集群架構 97
6.1.1 分片簡介 97
6.1.2 分片集群架構 97
6.2 分片策略 98
6.2.1 什么是chunk 99
6.2.2 分片算法 100
6.2.3 分片鍵的選擇 101
6.3 讀寫分發模式 101
6.3.1 數據分發流程 101
6.3.2 避免廣播操作 103
6.3.3 保證索引唯一性 104
6.4 數據均衡 104
6.4.1 均衡的方式 104
6.4.2 chunk 分裂 105
6.4.3 自動均衡 106
6.4.4 數據均衡帶來的問題 108
6.5 使用mtools搭建集群 108
6.5.1 mtools 介紹 109
6.5.2 準備工作 109
6.5.3 安裝 mtools 109
6.5.4 創建分片集群 110
6.5.5 停止、啟動 112
6.6 使用分片集群 112
6.7 小技巧――使用標簽 114
6.7.1 分片標簽 114
6.7.2 使用場景 115
第2部分 MongoDB微服務開發
第7章 微服務入門 117
7.1 微服務定義 117
7.1.1 什么是微服務 117
7.1.2 理解微服務 117
7.1.3 微服務的通用特性 120
7.1.4 微服務不是“銀彈” 121
7.2 微服務基礎設施 121
7.2.1 服務注冊 121
7.2.2 服務發現 122
7.2.3 API網關 123
7.2.4 服務容錯 123
7.2.5 服務監控 124
7.2.6 配置中心 124
7.2.7 接口調用 124
7.2.8 容器化 125
7.3 CAP與BASE理論 125
7.3.1 CAP 理論 125
7.3.2 BASE 理論 126
7.4 為什么MongoDB適合微服務 127
第8章 使用Java操作MongoDB 131
8.1 搭建Java開發環境 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 連接數據庫 135
8.2.4 操作數據 136
8.3 使用MongoDB Java Driver 137
8.3.1 引入框架 137
8.3.2 連接數據庫 137
8.3.3 使用構建器 138
8.4 實例:文章列表的存儲與檢索 141
8.4.1 集合操作 141
8.4.2 文檔操作 143
8.5 異步驅動 146
8.5.1 理解響應式 146
8.5.2 使用響應式流 147
8.6 使用CommandListener檢測慢
操作 152
8.7 MongoDB Java Driver的工作原理 155
8.7.1 游標 155
8.7.2 連接池 158
8.7.3 故障轉移 160
8.7.4 連接池相關參數 161
8.8 小技巧――如何監視驅動的
連接數 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操作
數據庫 179
9.4.1 引入依賴 179
9.4.2 配置文件 180
9.4.3 數據模型 180
9.4.4 數據操作 181
9.4.5 啟動測試 183
9.5 高級操作 184
9.5.1 實現投射 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 實現單元測試 194
9.7.1 使用 flapdoodle.embed.mongo 194
9.7.2 原理解析 198
9.7.3 定制化集成 200
9.8 多數據源 203
9.9 使用審計功能 208
9.9.1 使用注解 208
9.9.2 實現審計 209
9.10 小技巧――自定義數據序列化
方式 210
第10章 項目實戰 215
10.1 初始化項目 215
10.2 實現資源抓取 219
10.3 發布RssFeed 229
10.4 統計功能 232
10.5 開發門戶界面 235
10.5.1 前端組件 235
10.5.2 RSS門戶應用 237
10.5.3 實現后臺接口 249
10.6 打包應用程序 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 吞吐量、并發數、響應
時間 258
11.2 WiredTiger讀寫模型 259
11.2.1 讀緩存 259
11.2.2 寫緩沖 260
11.2.3 緩存頁管理 262
11.2.4 數據壓縮 264
11.2.5 小結 265
11.3 性能監控工具 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 執行壓力測試 279
11.4.3 生成時序指標序列 284
11.5 使用 nmon監視服務器性能 285
第12章 合理使用索引 288
12.1 索引檢索原理 288
12.2 索引檢索范例 291
12.3 覆蓋索引 295
12.4 查詢計劃 298
12.4.1 查詢計劃構成 298
12.4.2 explain 命令 299
12.5 實戰:查詢案例分析 304
12.6 查詢緩存原理 322
12.6.1 工作流程 322
12.6.2 案例 323
12.6.3 內部原理 326
12.7 強制命中 328
12.7.1 使用 hint方法 328
12.7.2 使用IndexFilter方法 329
12.8 索引正交 331
12.9 使用MongoDB Compass 332
12.10 優化原則 333
第13章 并發優化 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 避免重復數據 353
13.7 那些影響并發的操作 356
第14章 應用設計調優 358
14.1 應用范式設計 358
14.1.1 什么是范式 358
14.1.2 反范式設計 360
14.2 嵌套設計 362
14.2.1 在文檔內使用嵌套 362
14.2.2 表達關聯 363
14.3 桶模式 365
14.3.1 桶模式 365
14.3.2 桶模式案例 366
14.4 海量數據分頁 374
14.4.1 傳統分頁模式 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 讀寫關注 387
14.6.3 讀自身的寫入(Read your
own writes) 390
14.6.4 因果一致性 391
14.6.5 小結 392
14.7 聚合范例 392
14.7.1 聚合框架介紹 392
14.7.2 找出重復數據 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案例:數據遷移 408
15.2.1 關鍵點 409
15.2.2 實戰:使用 Change Stream
實現增量遷移 410
15.2.3 小結 420
15.3 多文檔事務 421
15.3.1 事務簡介 421
15.3.2 MongoDB 中的事務 422
15.4 基于Spring開發事務 426
15.4.1 在驅動中實現事務 426
15.4.2 使用 Spring Data 實現事務 428
15.5 事務實現原理 432
15.5.1 MVCC 與快照的一致性 432
15.5.2 事務持久性 434
15.5.3 讀寫隔離設定 435
15.6 寫沖突模式 437
15.7 使用事務的限制 440
第4部分 MongoDB架構管理
第16章 安全管理 441
16.1 MongoDB如何鑒權 441
16.1.1 初體驗 441
16.1.2 理解身份認證與授權 443
16.1.3 身份認證方式 443
16.1.4 RBAC 訪問控制 446
16.2 角色管理 447
16.2.1 角色管理命令 447
16.2.2 系統內置角色 448
16.2.3 創建自定義角色 449
16.3 *小權限原則 450
16.4 安全*佳實踐 452
第17章 高可靠 457
17.1 節點部署優化 457
17.1.1 硬件規劃 457
17.1.2 系統調優 458
17.1.3 數據庫配置 460
17.2 集群高可靠 461
17.2.1 反親和部署 462
17.2.2 避免集中存儲 462
17.2.3 警惕資源超分 463
17.3 應用層高可靠 463
17.3.1 故障隔離 463
17.3.2 故障轉移/恢復 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章 治理經驗 476
18.1 強化約束 476
18.1.1 使用 JSON Schema 476
18.1.2 管理文檔結構 478
18.2 使用Mongobee實現升級 478
18.2.1 模式演進 478
18.2.2 Mongobee 介紹 479
18.2.3 范例 480
18.3 規范與自動化 484
18.3.1 開發規范 485
18.3.2 實現自動化 486
18.4 運維管理 487
18.4.1 容量規劃 487
18.4.2 監控時關注哪些指標 490
MongoDB進階與實戰:微服務整合、性能優化、架構管理 作者簡介
唐卓章(博客園ID:美碼師)。十年研發老兵,持續關注NoSQL分布式數據庫技術,在系統高可用、彈性擴展、性能調優等方面有著豐富的實踐及管理經驗。MongoDB中文社區核心成員之一。常活躍于Mongoing社區原創及問答板塊。華為云 MongoDB 技術專家。致力于萬物互聯事業,負責物聯網平臺系統的架設及研發工作。
- >
苦雨齋序跋文-周作人自編集
- >
伊索寓言-世界文學名著典藏-全譯本
- >
回憶愛瑪儂
- >
詩經-先民的歌唱
- >
月亮與六便士
- >
羅曼·羅蘭讀書隨筆-精裝
- >
伯納黛特,你要去哪(2021新版)
- >
巴金-再思錄