MongoDB进阶与实战 pdf下载pdf下载

MongoDB进阶与实战百度网盘pdf下载

作者:
简介:本篇提供书籍《MongoDB进阶与实战》百度网盘pdf下载
出版社:博库网旗舰店
出版时间:2021-04
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍


基本信息(以实物为准)

  • 商品名称:MongoDB进阶与实战(微服务整合性能优化架构管理)
  • 作者:唐卓章|责编:石倩
  • 定价:118
  • 出版社:电子工业
  • 书号:9787121408274

其他参考信息(以实物为准)

  • 出版时间:2021-04-01
  • 印刷时间:2021-04-01
  • 版次:1
  • 印次:1
  • 开本:16开
  • 包装:平装
  • 页数:494
  • 字数:819千字

内容提要

本书围绕如何用好MongoDB这个复杂命题,利用大部分篇幅讲述了MongoDB在应用开发方面的各种进阶技巧,同时也介绍了MongoDB 4.0版本的事务特性及微服务相关的技术范例。很多基本的数据库问题都可以从MongoDB的官方文档中找到答案,但官方文档中在MongoDB周边技术栈的整合、系统管理及调优方面仍然缺乏一些富有针对性的内容,所以本书在结合一些实践案例的前提下,以开发管理者的角度对MongoDB技术进行了系统地梳理,希望能够让读者的学习达到事半功倍的效果。相信本书会对应用MongoDB的开发人员具有广泛的指导意义。

作者简介

唐卓章(博客园ID:美码师)。十年研发老兵,持续关注NoSQL分布式数据库技术,在系统高可用、弹性扩展、性能调优等方面有着丰富的实践及管理经验。MongoDB中文社区核心成员之一。常活跃于Mongoing社区原创及问答板块。华为云 MongoDB 技术专家。致力于万物互联事业,负责物联网平台系统的架设及研发工作。

目录

部分 MongoDB入门
第1章 什么是MongoDB1
1.1 认识MongoDB1
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章 体验MongoDB11
2.1 安装MongoDB11
2.1.1 Linux环境下的安装11
2.1.2 Windows环境下的安装15
2.2 使用mongo shell19
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和JSON38
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 什么是chunk99
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 安装 mtools109
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操作MongoDB131
8.1 搭建Java开发环境131
8.1.1 安装JDK131
8.1.2 安装IDEA132
8.2 安装Robo 3T134
8.2.1 Robo 3T介绍134
8.2.2 下载安装134
8.2.3 连接数据库135
8.2.4 操作数据136
8.3 使用MongoDB Java Driver137
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 Data176
9.3.2 Spring Data MongoDB178
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 使用 QBE186
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.mongo194
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
0章 项目实战215
10.1 初始化项目215
10.2 实现资源抓取219
10.3 发布RssFeed229
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高效进阶
1章 性能基准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 mongostat265
11.3.2 mongotop267
11.3.3 Profiler模块269
11.3.4 db.currentOp272
11.4 使用YCSB测试MongoDB性能277
11.4.1 YCSB 简介277
11.4.2 执行压力测试279
11.4.3 生成时序指标序列284
11.5 使用 nmon监视服务器性能285
2章 合理使用索引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 Compass332
12.10 优化原则333
3章 并发优化337
13.1 MongoDB的锁模式337
13.2 MVCC340
13.3 原子性操作342
13.4 乐观锁345
13.4.1 电影院订座的案例345
13.4.2 版本号模式348
13.5 缓解行锁竞争349
13.6 避免重复数据353
13.7 那些影响并发的操作356
4章 应用设计调优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
5章 特性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架构管理
6章 安全管理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
7章 高可靠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
8章 治理经验476
18.1 强化约束476
18.1.1 使用 JSON Schema476
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