登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書

『簡體書』MongoDB进阶与实战:微服务整合、性能优化、架构管理

書城自編碼: 3621768
分類:簡體書→大陸圖書→計算機/網絡數據庫
作者: 唐卓章
國際書號(ISBN): 9787121408274
出版社: 电子工业出版社
出版日期: 2021-04-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 147.5

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
新形势下海事综合风险管控理论与实践
《 新形势下海事综合风险管控理论与实践 》

售價:HK$ 96.0
数码港元:Web3.0构建香港新金融
《 数码港元:Web3.0构建香港新金融 》

售價:HK$ 90.0
邓正来著作集(全9册)
《 邓正来著作集(全9册) 》

售價:HK$ 1905.6
努斯:希腊罗马哲学研究(第6辑)--逻辑、同异与辩证法
《 努斯:希腊罗马哲学研究(第6辑)--逻辑、同异与辩证法 》

售價:HK$ 81.6
碳交易与碳金融基础(彭玉镏)
《 碳交易与碳金融基础(彭玉镏) 》

售價:HK$ 57.6
当下的骰子--福柯的光与影
《 当下的骰子--福柯的光与影 》

售價:HK$ 105.6
数字经济蓝皮书:全球数字经济竞争力发展报告(2023)
《 数字经济蓝皮书:全球数字经济竞争力发展报告(2023) 》

售價:HK$ 189.6
中国燃料电池汽车产业实践:政策、技术、建议及展望    中国汽车技术研究中心有限公司
《 中国燃料电池汽车产业实践:政策、技术、建议及展望 中国汽车技术研究中心有限公司 》

售價:HK$ 165.6

 

建議一齊購買:

+

HK$ 160.7
《 MongoDB从入门到商业实战 》
+

HK$ 170.3
《 PostgreSQL修炼之道:从小工到专家(第2版) 》
+

HK$ 172.5
《 Redis核心原理与实践 》
+

HK$ 299.8
《 Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版) 》
+

HK$ 145.2
《 漫画算法2:小灰的算法进阶 》
+

HK$ 173.8
《 数据库系统概念 (英文精编版·原书第7版) 》
編輯推薦:
MongoDB数据库技术的掌握:包括基本的文档模型概念和数据操作,以及集群高可用、数据分片方面的知识。
? MongoDB整合微服务的技能:需要对微服务周边的技术框架有一定的掌握。本书以当前*流行的 Java 微服务技术栈为背景,介绍了从MongoDB Java Driver、Spring Data Mongo(ODM层)到上层应用整合的各种实战范例。
? MongoDB高阶技巧的掌握:包括MongoDB系统性能调优及MongoDB 架构高可用、安全性、高效运维管理方面的一些知识和经验。
內容簡介:
本书围绕如何用好MongoDB这个复杂命题,利用大部分篇幅讲述了MongoDB在应用开发方面的各种进阶技巧,同时也介绍了MongoDB 4.0版本的事务特性及微服务相关的技术范例。很多基本的数据库问题都可以从MongoDB的官方文档中找到答案,但官方文档中在MongoDB周边技术栈的整合、系统管理及调优方面仍然缺乏一些富有针对性的内容,所以本书在结合一些实践案例的前提下,以开发管理者的角度对MongoDB技术进行了系统地梳理,希望能够让读者的学习达到事半功倍的效果。相信本书会对应用MongoDB的开发人员具有广泛的指导意义。
關於作者:
唐卓章(博客园ID:美码师)。十年研发老兵,持续关注NoSQL分布式数据库技术,在系统高可用、弹性扩展、性能调优等方面有着丰富的实践及管理经验。MongoDB中文社区核心成员之一。常活跃于Mongoing社区原创及问答板块。华为云 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
1
內容試閱
前言

MongoDB是当今业界使用广泛的文档数据库之一,其从2009年诞生以来,已经吸引了无数开发者的目光。曾经MongoDB被冠以“四不像”的称号,被大家称为“非关系型数据库中像关系型数据库的软件”。即便如此,MongoDB在其发展历程中仍表现出强大的生命力。尤其在近几年,随着云计算、大数据的飞速发展,企业项目对分布式数据库的需求越来越多,MongoDB作为一款灵活易用、高可用、高可扩展的分布式数据库,在许多互联网产品及企业项目中大施拳脚。
笔者从2016年开始真正接触MongoDB数据库,而在此之前曾有过很长一段时间的关系型数据库使用经验。从自身的感受来说,采用传统的关系型数据库可能是一种“万金油”的方案,选择MongoDB则很大程度取决于团队对NoSQL的接受程度,或是来自敏捷开发、高效扩展方面的权衡。
MongoDB的名字来自英文单词“Humongous”,中文含义是“庞大”“巨大”,命名者的意图是可以处理大规模的数据。但笔者所在的团队更喜欢称呼它为“芒果”数据库,除了译音更加相近,还有这几年使用MongoDB的两层感受。
层感受是“爽”。相比关系型数据库,MongoDB几乎没有太多的约束。一方面,MongoDB的文档模型是基于JSON的,开发者更容易理解。另一方面,动态化模式的特性让数据库的管理工作变得更加简单,例如一些线上的变更可以更快速地完成。第二层感受是“酸爽”。这一点对于MongoDB数据管理员来说可能更有感触一些。MongoDB由于入门体验“太过于友好”,导致初学者很容易产生一种误解,即MongoDB不需要在管理方面投入太多的精力,终导致系统上线后不断被发现一些技术债务。更戏谑的说法是,“交付一时爽,维护火葬场”。当然,这么说可能并不恰当,但笔者想表达的观点是,与传统的关系型数据库一样,MongoDB在使用上仍然需要认真地考量和看护,只有如此才可能限度地发挥出MongoDB的优势。本书写作思路
本书的书名为《MongoDB进阶与实战:微服务整合、性能优化、架构管理》,意味着书中除了介绍MongoDB技术,还会介绍与微服务相关的技术范例。在当今的背景下,风靡业界的微服务架构已成为分布式系统的事实标准。因此,我们在谈MongoDB应用开发时,必然免不了和微服务技术栈产生一些联系。以开发者的角度来看,在成为一名MongoDB高手之前,掌握全栈式的知识技能仍然是必需的,这些技能可概括为以下3个方面。
MongoDB数据库技术的掌握:包括基本的文档模型概念和数据操作,以及集群高可用、数据分片方面的知识。MongoDB整合微服务的技能:需要对微服务周边的技术框架有一定的掌握。本书以当前流行的 Java 微服务技术栈为背景,介绍了从MongoDB Java Driver、Spring Data Mongo(ODM层)到上层应用整合的各种实战范例。MongoDB高阶技巧的掌握:包括MongoDB系统性能调优及MongoDB 架构高可用、安全性、高效运维管理方面的一些知识和经验。
由此可见,初学者在从MongoDB入门到进阶的过程中,需要学习及掌握的知识并不算少。尤其是高阶技巧方面,这部分是难也是花费时间成本的。而笔者一贯认同的是,好记性不如烂笔头,在学习MongoDB的历程中,笔者将MongoDB在项目中的实战经验进行了总结,并多次以文章的形式发表。在和一些读者交流之后,笔者发现大家实际上都遇到了不少应用层面的开发问题。
尽管MongoDB的官方文档已经做得非常详细(大多数基本的数据库问题都可以从官方文档中找到答案),然而其在周边技术栈的整合、系统管理及调优方面仍缺乏一些富有针对性的内容。因此笔者认为在结合一些实践案例的前提下,再以开发管理者的角度对MongoDB技术进行系统地梳理,则可能会产生事半功倍的效果,遂迸发了编写本书的想法。
本书内容概要第1部分:MongoDB入门(第1~6章)
该部分介绍MongoDB的基本概念及入门知识。
通过该部分的学习,读者可对MongoDB自身的技术全貌形成一定的认识。
第2部分:MongoDB微服务开发(第7~10章)
该部分介绍微服务的基本概念及微服务架构中应用MongoDB的相关技术实现。
通过该部分的学习,读者将能深入了解基于Java 微服务技术栈开发 MongoDB 应用的实践方法。
第3部分:MongoDB高级进阶(第11~15章)
该部分介绍MongoDB更加高级的一些使用技巧。
通过该部分的学习,读者可掌握MongoDB在性能调优方面的一些实践及指导方案。
第4部分:MongoDB架构管理(第16~18章)
该部分介绍MongoDB在架构管理方面的一些经验。
通过该部分的学习,读者可获得MongoDB在架构可靠性、安全方面的指导及如何在项目中进行数据库问题防治的一些思路。
读者对象
本书适合希望了解、使用MongoDB数据库的技术从业者。
对有一定基础的研发人员,通过阅读本书可以更深入地了解MongoDB在性能调优、集群技术方面的一些原理。
对初学者,可以根据书中的一些案例快速开发基于 MongoDB 的微服务应用。
对系统架构师,可以通过本书了解 MongoDB 的一些进阶特性及原理,并获得在技术选型、架构管理方面的指导信息。
特别说明
本书的重点是讨论MongoDB开发进阶方面的内容,但书中会介绍MongoDB整合Java微服务所的一些关键技能(如Java驱动、Spring框架整合等)。微服务本身是一个非常大的课题,由于篇幅和笔者水平有限,这里对容器化、分布式框架方面的细节不会做过多介绍,而实际上这也超出了本书的范围。如果读者感兴趣,建议参阅其他书籍。
致谢
决定写一本书,不仅是分享知识,还是践行长期主义的一次历程。不得不说,这个过程的确是痛并快乐着。由于平日里工作非常繁忙,笔者无数次不得不坚持在深夜里赶稿子,由此也牺牲了很多陪伴家人和孩子的宝贵时间。在此特别感谢我的家人,如果没有你们的大力支持,本书不会如此顺利地完成。另外还要感谢笔者的项目团队,让笔者有机会在工作过程中学习到大量的MongoDB的知识。
本书提供了大量的案例说明,旨在分享MongoDB在应用开发、系统调优及管理中的一些实战经验。由于笔者个人能力有限,书中难免存在错漏之处,恳请读者提出问题并帮忙指正,再次感谢!

唐卓章
2021年2月

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.