万本电子书0元读

万本电子书0元读

顶部广告

MongoDB进阶与实战:微服务整合、性能优化、架构管理电子书

     MongoDB数据库技术的掌握:包括基本的文档模型概念和数据操作,以及集群高可用、数据分片方面的知识。 ?   MongoDB整合微服务的技能:需要对微服务周边的技术框架有一定的掌握。本书以当前*流行的 Java 微服务技术栈为背景,介绍了从MongoDB Java Driver、Spring Data Mongo(ODM层)到上层应用整合的各种实战范例。 ?   MongoDB高阶技巧的掌握:包括MongoDB系统性能调优及MongoDB 架构高可用、安全性、高效运维管理方面的一些知识和经验。

售       价:¥

纸质售价:¥93.20购买纸书

282人正在读 | 0人评论 6.2

作       者:唐卓章

出  版  社:电子工业出版社

出版时间:2021-04-01

字       数:18.8万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书围绕如何用好MongoDB这个复杂命题,利用大部分篇幅讲述了MongoDB在应用发方面的各种阶技巧,同时也介绍了MongoDB 4.0版本的事务特性及微服务相关的技术范例。很多基本的数据库问题都可以从MongoDB的官方文档中找到答案,但官方文档中在MongoDB周边技术栈的整合、系统管理及调优方面仍然缺乏一些富有针对性的内容,所以本书在结合一些实践案例的前提下,以发管理者的角度对MongoDB技术行了系统地梳理,希望能够让读者的学习达到事半功倍的效果。相信本书会对应用MongoDB的发人员具有广泛的指导意义。<br/>【推荐语】<br/>     MongoDB数据库技术的掌握:包括基本的文档模型概念和数据操作,以及集群高可用、数据分片方面的知识。 ?   MongoDB整合微服务的技能:需要对微服务周边的技术框架有一定的掌握。本书以当前*流行的 Java 微服务技术栈为背景,介绍了从MongoDB Java Driver、Spring Data Mongo(ODM层)到上层应用整合的各种实战范例。 ?   MongoDB高阶技巧的掌握:包括MongoDB系统性能调优及MongoDB 架构高可用、安全性、高效运维管理方面的一些知识和经验。<br/>【作者】<br/>唐卓章(博客园ID:美码师)。十年研发老兵,持续关注NoSQL分布式数据库技术,在系统高可用、弹性扩展、性能调优等方面有着丰富的实践及管理经验。MongoDB中文社区核心成员之一。常活跃于Mongoing社区原创及问答板块。华为云 MongoDB 技术专家。致力于万物互联事业,负责物联网平台系统的架设及研发工作。<br/>
目录展开

前折页

内容简介

前言

第1部分 MongoDB入门

第1章 什么是MongoDB

1.1 认识MongoDB

1.1.1 面向文档设计

1.1.2 特性

1.1.3 优势

1.1.4 需要克服的困难

1.2 类比SQL模型

1.2.1 数据结构

1.2.2 类SQL语句

第2章 体验MongoDB

2.1 安装MongoDB

2.1.1 Linux环境下的安装

2.1.2 Windows环境下的安装

2.2 使用mongo shell

2.3 插入文档

2.4 查询文档

2.4.1 查询全部数据

2.4.2 指定条件查询

2.4.3 排序、分页

2.4.4 使用投射

2.4.5 查询限定符

2.5 更新文档

2.5.1 update命令

2.5.2 findAndModify命令

2.5.3 更新操作符

2.6 删除文档

2.6.1 删除单个文档

2.6.2 删除指定条件文档

2.6.3 删除全部文档

2.6.4 返回被删除文档

2.7 使用聚合

2.8 计算文档大小

2.8.1 查看集合大小

2.8.2 计算文档大小

2.9 小技巧——定义mongo shell环境

第3章 数据模型

3.1 BSON协议与类型

3.1.1 JSON标准

3.1.2 BSON和JSON

3.1.3 BSON的数据类型

3.2 使用日期

3.3 ObjectId生成器

3.4 数组、内嵌

3.4.1 内嵌文档

3.4.2 数组

3.4.3 嵌套型的数组

3.5 固定集合

3.5.1 固定集合简介

3.5.2 使用示例

3.5.3 特征与限制

3.5.4 适用场景

3.6 小技巧——使用固定集合实现FIFO队列

第4章 索引介绍

4.1 索引简述

4.2 单键、复合索引

4.2.1 单字段索引

4.2.2 复合索引

4.3 数组索引

4.4 地理空间索引

4.5 唯一性约束

4.6 TTL索引

4.7 其他索引特性

4.7.1 条件索引

4.7.2 稀疏索引(sparse=true)

4.7.3 文本索引

4.7.4 模糊索引

4.8 小技巧——使用explain命令验证优化

第5章 副本集

5.1 副本集架构

5.2 集群选举

5.2.1 Raft选举算法

5.2.2 MongoDB实现的扩展

5.2.3 MongoDB选举介绍

5.2.4 副本集模式

5.3 实时复制

5.3.1 oplog复制

5.3.2 幂等性

5.3.3 复制延迟

5.3.4 初始化同步

5.3.5 数据回滚

5.4 自动故障转移

5.5 搭建副本集

5.5.1 安装副本集

5.5.2 创建用户

5.5.3 写入数据

5.5.4 主备节点切换

5.6 小技巧——检查复制的延迟情况

第6章 分片

6.1 分片集群架构

6.1.1 分片简介

6.1.2 分片集群架构

6.2 分片策略

6.2.1 什么是chunk

6.2.2 分片算法

6.2.3 分片键的选择

6.3 读写分发模式

6.3.1 数据分发流程

6.3.2 避免广播操作

6.3.3 保证索引唯一性

6.4 数据均衡

6.4.1 均衡的方式

6.4.2 chunk分裂

6.4.3 自动均衡

6.4.4 数据均衡带来的问题

6.5 使用mtools搭建集群

6.5.1 mtools介绍

6.5.2 准备工作

6.5.3 安装mtools

6.5.4 创建分片集群

6.5.5 停止、启动

6.6 使用分片集群

6.7 小技巧——使用标签

6.7.1 分片标签

6.7.2 使用场景

第2部分 MongoDB微服务开发

第7章 微服务入门

7.1 微服务定义

7.1.1 什么是微服务

7.1.2 理解微服务

7.1.3 微服务的通用特性

7.1.4 微服务不是“银弹”

7.2 微服务基础设施

7.2.1 服务注册

7.2.2 服务发现

7.2.3 API网关

7.2.4 服务容错

7.2.5 服务监控

7.2.6 配置中心

7.2.7 接口调用

7.2.8 容器化

7.3 CAP与BASE理论

7.3.1 CAP理论

7.3.2 BASE理论

7.4 为什么MongoDB适合微服务

第8章 使用Java操作MongoDB

8.1 搭建Java开发环境

8.1.1 安装JDK

8.1.2 安装IDEA

8.2 安装Robo 3T

8.2.1 Robo 3T介绍

8.2.2 下载安装

8.2.3 连接数据库

8.2.4 操作数据

8.3 使用MongoDB Java Driver

8.3.1 引入框架

8.3.2 连接数据库

8.3.3 使用构建器

8.4 实例:文章列表的存储与检索

8.4.1 集合操作

8.4.2 文档操作

8.5 异步驱动

8.5.1 理解响应式

8.5.2 使用响应式流

8.6 使用CommandListener检测慢操作

8.7 MongoDB Java Driver的工作原理

8.7.1 游标

8.7.2 连接池

8.7.3 故障转移

8.7.4 连接池相关参数

8.8 小技巧——如何监视驱动的连接数

第9章 SpringBoot框架整合

9.1 SpringBoot简介

9.1.1 SpringBoot是什么

9.1.2 “脚手架”风格

9.2 第一个SpringBoot项目

9.2.1 初始化项目

9.2.2 添加启动类

9.2.3 编写 Echo接口

9.2.4 配置文件

9.2.5 启动程序

9.2.6 热加载

9.3 Spring Data框架介绍

9.3.1 Spring Data

9.3.2 Spring Data MongoDB

9.4 使用Spring Data MongoDB操作数据库

9.4.1 引入依赖

9.4.2 配置文件

9.4.3 数据模型

9.4.4 数据操作

9.4.5 启动测试

9.5 高级操作

9.5.1 实现投射

9.5.2 使用QBE

9.5.3 自定义Repository方法

9.6 自定义配置

9.6.1 Spring Boot通用配置

9.6.2 JavaConfig配置

9.6.3 自动配置的原理

9.7 实现单元测试

9.7.1 使用flapdoodle.embed.mongo

9.7.2 原理解析

9.7.3 定制化集成

9.8 多数据源

9.9 使用审计功能

9.9.1 使用注解

9.9.2 实现审计

9.10 小技巧——自定义数据序列化方式

第10章 项目实战

10.1 初始化项目

10.2 实现资源抓取

10.3 发布RssFeed

10.4 统计功能

10.5 开发门户界面

10.5.1 前端组件

10.5.2 RSS门户应用

10.5.3 实现后台接口

10.6 打包应用程序

10.6.1 使用spring-boot-maven-plugin插件

10.6.2 使用assembly插件

第3部分 MongoDB高效进阶

第11章 性能基准

11.1 性能基准

11.1.1 了解基准测试

11.1.2 吞吐量、并发数、响应时间

11.2 WiredTiger读写模型

11.2.1 读缓存

11.2.2 写缓冲

11.2.3 缓存页管理

11.2.4 数据压缩

11.2.5 小结

11.3 性能监控工具

11.3.1 mongostat

11.3.2 mongotop

11.3.3 Profiler模块

11.3.4 db.currentOp

11.4 使用YCSB测试MongoDB性能

11.4.1 YCSB简介

11.4.2 执行压力测试

11.4.3 生成时序指标序列

11.5 使用nmon监视服务器性能

第12章 合理使用索引

12.1 索引检索原理

12.2 索引检索范例

12.3 覆盖索引

12.4 查询计划

12.4.1 查询计划构成

12.4.2 explain命令

12.5 实战:查询案例分析

12.6 查询缓存原理

12.6.1 工作流程

12.6.2 案例

12.6.3 内部原理

12.7 强制命中

12.7.1 使用hint方法

12.7.2 使用IndexFilter方法

12.8 索引正交

12.9 使用MongoDB Compass

12.10 优化原则

第13章 并发优化

13.1 MongoDB的锁模式

13.2 MVCC

13.3 原子性操作

13.4 乐观锁

13.4.1 电影院订座的案例

13.4.2 版本号模式

13.5 缓解行锁竞争

13.6 避免重复数据

13.7 那些影响并发的操作

第14章 应用设计调优

14.1 应用范式设计

14.1.1 什么是范式

14.1.2 反范式设计

14.2 嵌套设计

14.2.1 在文档内使用嵌套

14.2.2 表达关联

14.3 桶模式

14.3.1 桶模式

14.3.2 桶模式案例

14.4 海量数据分页

14.4.1 传统分页模式

14.4.2 使用偏移量

14.4.3 折中处理

14.5 批操作

14.5.1 批量读

14.5.2 批量写

14.6 读写分离与一致性

14.6.1 读写分离

14.6.2 读写关注

14.6.3 读自身的写入(Read your own writes)

14.6.4 因果一致性

14.6.5 小结

14.7 聚合范例

14.7.1 聚合框架介绍

14.7.2 找出重复数据

14.7.3 写入中间表

14.7.4 表连接(join)

14.7.5 使用要点

第15章 高级特性

15.1 Change Stream介绍

15.2 Change Stream案例:数据迁移

15.2.1 关键点

15.2.2 实战:使用Change Stream实现增量迁移

15.2.3 小结

15.3 多文档事务

15.3.1 事务简介

15.3.2 MongoDB中的事务

15.4 基于Spring开发事务

15.4.1 在驱动中实现事务

15.4.2 使用Spring Data实现事务

15.5 事务实现原理

15.5.1 MVCC与快照的一致性

15.5.2 事务持久性

15.5.3 读写隔离设定

15.6 写冲突模式

15.7 使用事务的限制

第4部分 MongoDB架构管理

第16章安全管理

16.1 MongoDB如何鉴权

16.1.1 初体验

16.1.2 理解身份认证与授权

16.1.3 身份认证方式

16.1.4 RBAC访问控制

16.2 角色管理

16.2.1 角色管理命令

16.2.2 系统内置角色

16.2.3 创建自定义角色

16.3 最小权限原则

16.4 安全最佳实践

第17章 高可靠

17.1 节点部署优化

17.1.1 硬件规划

17.1.2 系统调优

17.1.3 数据库配置

17.2 集群高可靠

17.2.1 反亲和部署

17.2.2 避免集中存储

17.2.3 警惕资源超分

17.3 应用层高可靠

17.3.1 故障隔离

17.3.2 故障转移/恢复

17.4 备份可靠性

17.4.1 逻辑备份

17.4.2 物理备份

17.4.3 增量备份

17.5 容灾可靠性

17.5.1 同城灾备

17.5.2 异地灾备

17.5.3 异地多活

第18章 治理经验

18.1 强化约束

18.1.1 使用JSON Schema

18.1.2 管理文档结构

18.2 使用Mongobee实现升级

18.2.1 模式演进

18.2.2 Mongobee介绍

18.2.3 范例

18.3 规范与自动化

18.3.1 开发规范

18.3.2 实现自动化

18.4 运维管理

18.4.1 容量规划

18.4.2 监控时关注哪些指标

后折页

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部