第1章 微服务概念
1.1 理解应用程序
1.1.1 领域驱动设计
1.1.2 单一职责原则
1.1.3 显式发布的接口
1.2 独立部署、更新、扩展以及替换
1.2.1 独立部署
1.2.2 更新
1.2.3 可扩展性
1.3 轻量级通信
1.3.1 同步
1.3.2 异步
1.4 异质/多语言
1.5 通信的文档化
1.6 Web应用程序端点
1.7 移动应用程序端点
1.8 缓存客户端
1.9 调节客户端
1.10 确定贫血域
1.11 确定fat域
1.12 针对业务确定微服务域
1.13 从域到实体
1.14 本章小结
第2章 微服务工具
2.1 编程语言
2.1.1 熟练程度
2.1.2 性能
2.1.3 实践开发
2.1.4 生态圈
2.1.5 扩展性的开销
2.1.6 选取编程语言
2.2 微服务框架
2.2.1 Python语言
2.2.2 Go语言
2.3 二进制通信——服务间的直接通信
2.3.1 理解通信方式
2.3.2 直接通信间的警示信息
2.4 消息代理——服务间的异步通信
2.4.1 ActiveMQ
2.4.2 RabbitMQ
2.4.3 Kafka
2.5 缓存工具
2.5.1 Memcached
2.5.2 Redis
2.6 故障警示工具
2.6.1 性能
2.6.2 构建
2.6.3 组件
2.6.4 实现鸿沟
2.7 数据库
2.8 本地性能度量
2.8.1 Apache Benchmark
2.8.2 WRK
2.8.3 Locust
2.9 本章小结
第3章 内部模式
3.1 开发结构
3.1.1 数据库
3.1.2 编程语言和工具
3.1.3 项目结构
3.2 缓存策略
3.2.1 缓存机制的应用
3.2.2 缓存优先
3.2.3 队列任务
3.2.4 异步机制和worker
3.3 CQRS——查询策略
3.3.1 CQRS的概念
3.3.2 理解CQRS
3.3.3 CQRS的优点和缺陷
3.4 事件源——数据完整性
3.5 本章小结
第4章 微服务生态环境
4.1 容器中的分离机制
4.1.1 分层服务架构
4.1.2 分离UsersService
4.2 存储分布
4.2.1 折旧数据
4.2.2 区域化数据
4.3 隔离——使用生态系统防止故障的出现
4.3.1 冗余设计
4.3.2 临界分区
4.3.3 隔离设计
4.3.4 快速故障
4.4 断路器
4.5 本章小结
第5章 共享数据微服务设计模式
5.1 理解模式
5.2 将单体应用程序划分为微服务
5.2.1 定义优先级
5.2.2 设置期限
5.2.3 定义应用程序域
5.2.4 试验操作
5.2.5 制定标准
5.2.6 构建原型
5.2.7 发送产品
5.2.8 开发新的微服务
5.3 数据编排
5.4 响应整合
5.5 微服务通信
5.6 存储共享反模式
5.7 最佳实践
5.8 测试机制
5.9 共享数据模式的利弊
5.10 本章小结
第6章 聚合器微服务设计模式
6.1 理解聚合器设计模式
6.2 使用CQRS和事件源
6.2.1 分离数据库
6.2.2 重构微服务
6.3 微服务通信
6.3.1 创建编排器
6.3.2 使用消息代理
6.4 模式扩展
6.5 瓶颈反模式
6.6 最佳实践
6.7 测试
6.7.1 功能测试
6.7.2 集成测试
6.8 聚合器设计模式的优缺点
6.8.1 聚合器设计模式的优点
6.8.2 聚合器设计模式的缺点
6.9 本章小结
第7章 代理微服务设计模式
7.1 代理方案
7.1.1 哑代理
7.1.2 智能代理
7.1.3 理解当前代理
7.2 编排器的代理策略
7.3 微服务通信
7.4 模式扩展性
7.5 最佳实践
7.5.1 纯粹的模式
7.5.2 瓶颈问题
7.5.3 代理制的缓存机制
7.5.4 简单的响应
7.6 代理设计模式的优缺点
7.7 本章小结
第8章 链式微服务设计模式
8.1 理解模式
8.2 数据编排和响应整合
8.3 微服务通信
8.4 模式扩展性
8.5 “大泥球”反模式
8.6 最佳实践方案
8.6.1 纯微服务
8.6.2 请求一致性数据
8.6.3 深入理解链式设计模式
8.6.4 关注通信层
8.7 链式设计模式的优缺点
8.8 本章小结
第9章 分支微服务设计模式
9.1 理解模式
9.2 数据编排和响应整合
9.3 微服务通信
9.4 模式扩展
9.5 最佳实践方案
9.5.1 域定义
9.5.2 遵守规则
9.5.3 关注物理组件
9.5.4 简化行为
9.6 分支设计模式的优缺点
9.7 本章小结
第10章 异步消息微服务
10.1 理解当前模式
10.2 域定义——RecommendationService
10.3 域定义——RecommendationService
10.4 微服务编码
10.5 微服务通信
10.5.1 使用消息代理和队列
10.5.2 准备pub/sub结构
10.6 模式的可扩展性
10.7 进程序列反模式
10.8 最佳实践方案
10.8.1 应用程序定义
10.8.2 不要尝试创建响应
10.8.3 保持简单性
10.9 异步消息传