Spring Boot微服务实战
作者: Moises Macero
出版社: 清华大学出版社
副标题: 使用RabbitMQ、Eureka、Ribbon、Zuul和Cucumber开发RESTful服务
译者: 张渊 / 和坚
出版年: 2019-9
ISBN: 9787302535652
出版社: 清华大学出版社
副标题: 使用RabbitMQ、Eureka、Ribbon、Zuul和Cucumber开发RESTful服务
译者: 张渊 / 和坚
出版年: 2019-9
ISBN: 9787302535652
目录 · · · · · ·
目录
第1 章 介绍 1
1.1 设置场景 1
1.2 读者对象 2
1.3 本书与其他图书和指南有何区别 2
1.3.1 工具背后的论证 2
1.3.2 学习:渐进的过程 3
1.3.3 这是一本指南还是一本图书 3
1.4 本书内容 3
1.4.1 从基础知识到高级话题 3
1.4.2 搭建Spring Boot骨架的专业方式 4
1.4.3 测试驱动开发 4
1.4.4 连接微服务 4
1.4.5 事件驱动的系统 5
1.4.6 端到端测试 5
1.5 本章小结 5
第2 章 一个基本的Spring Boot应用 7
2.1 业务需求 7
2.2 骨架应用 8
2.2.1 轻薄应用与真实应用 8
2.2.2 创建应用骨架 8
2.3 热身:一些TDD的实战 10
2.4 本章小结 16
第3 章 一个真实的三层Spring Boot 应用 17
3.1 简介 17
3.2 完成基本功能 18
3.3 领域设计 24
3.4 业务逻辑层 28
3.5 展示层(REST API) 30
3.5.1 Multiplication Controller 31
3.5.2 Results控制器 35
3.6 前端(Web客户端) 38
3.7 试玩(第1部分) 42
3.8 数据持久化的新需求 43
3.9 重构代码 45
3.10 数据层 50
3.10.1 数据模型 51
3.10.2 资源库 56
3.11 完成第二个用户故事:串联所有层 63
3.12 畅玩应用(第2部分) 69
3.13 本章小结 71
第4 章 初识微服务 73
4.1 小单体之路 73
4.1.1 单体分析 75
4.1.2 继续前进 76
4.2 游戏化基础 77
4.2.1 分数、徽章和排行榜 77
4.2.2 应用游戏化技术 78
4.3 转向微服务架构 78
4.3.1 职责分离和松耦合 78
4.3.2 独立变更 79
4.3.3 伸缩性 79
4.4 连接不同的微服务 80
4.5 事件驱动架构 81
4.5.1 相关技术 81
4.5.2 事件驱动架构的优缺点 82
4.5.3 深入阅读 84
4.5.4 应用事件驱动架构 84
4.6 使用RabbitMQ和Spring AMQP实现事件驱动 85
4.6.1 在系统中使用RabbitMQ 86
4.6.2 Spring AMQP 86
4.7 从乘法微服务发送事件 87
4.7.1 RabbitMQ配置 87
4.7.2 对事件建模 89
4.7.3 发送事件:分发器模式 91
4.7.4 深入新游戏化微服务 95
4.8 使用RabbitMQ接收事件 111
4.8.1 订阅者 111
4.8.2 RabbitMQ配置 111
4.8.3 事件处理程序 114
4.9 在微服务之间请求数据 115
4.9.1 结合反应式模式和REST 115
4.9.2 保持领域隔离 117
4.9.3 实现REST客户端 119
4.9.4 更新游戏化业务逻辑 123
4.10 使用微服务 126
4.11 本章小结 128
第5 章 使用工具的微服务架构 131
5.1 介绍 131
5.2 抽取UI部分,并连接游戏化服务 132
5.2.1 移动静态内容 133
5.2.2 连接UI和游戏化服务 134
5.2.3 改变现有服务 136
5.2.4 全新的、更好的UI,而且(几乎)不需要额外的代价 139
5.3 当前架构 146
5.4 服务发现和负载均衡 147
5.4.1 服务发现 147
5.4.2 负载均衡 149
5.4.3 多语言系统、Eureka以及 Ribbon 151
5.5 通过API网关路由 153
5.5.1 API网关模式 153
5.5.2 让Zuul、Eureka和Ribbon一起工作 156
5.6 动手准则 158
5.6.1 使用Zuul实现API网关 158
5.6.2 使用服务发现 172
5.6.3 微服务准备好扩展了吗 174
5.6.4 通过Ribbon实现负载均衡 176
5.7 断路器和REST客户端 183
5.7.1 Hystrix断路器 183
5.7.2 Hystrix和Zuul 183
5.7.3 来自REST客户端的Hystrix 186
5.7.4 使用Feign的REST消费者 189
5.8 微服务模式和PaaS 189
5.9 本章小结 190
第6 章 测试分布式系统 193
6.1 介绍 193
6.2 设置场景 194
6.3 Cucumber的工作方式 195
6.4 动手准则 197
6.4.1 创建一个空项目并选择工具 197
6.4.2 让系统可测试 200
6.4.3 编写第一个Cucumber测试 207
6.4.4 把功能测试连接到Java代码 210
6.4.5 支持类 218
6.4.6 在feature之间重用步骤 223
6.4.7 运行测试并检查报告 225
6.5 本章小结 226
附录A 升级到Spring Boot 2.0 229
A.1 介绍 229
A.2 升级依赖项 229
A.3 修复已破坏的变化 232
A.3.1 CrudRepository接口不包含findOne()方法 232
A.3.2 actuator端点被移动 233
A.4 应用可选的更新 234
A.5 使用Spring Boot 2.0 234
后记 235
第1 章 介绍 1
1.1 设置场景 1
1.2 读者对象 2
1.3 本书与其他图书和指南有何区别 2
1.3.1 工具背后的论证 2
1.3.2 学习:渐进的过程 3
1.3.3 这是一本指南还是一本图书 3
1.4 本书内容 3
1.4.1 从基础知识到高级话题 3
1.4.2 搭建Spring Boot骨架的专业方式 4
1.4.3 测试驱动开发 4
1.4.4 连接微服务 4
1.4.5 事件驱动的系统 5
1.4.6 端到端测试 5
1.5 本章小结 5
第2 章 一个基本的Spring Boot应用 7
2.1 业务需求 7
2.2 骨架应用 8
2.2.1 轻薄应用与真实应用 8
2.2.2 创建应用骨架 8
2.3 热身:一些TDD的实战 10
2.4 本章小结 16
第3 章 一个真实的三层Spring Boot 应用 17
3.1 简介 17
3.2 完成基本功能 18
3.3 领域设计 24
3.4 业务逻辑层 28
3.5 展示层(REST API) 30
3.5.1 Multiplication Controller 31
3.5.2 Results控制器 35
3.6 前端(Web客户端) 38
3.7 试玩(第1部分) 42
3.8 数据持久化的新需求 43
3.9 重构代码 45
3.10 数据层 50
3.10.1 数据模型 51
3.10.2 资源库 56
3.11 完成第二个用户故事:串联所有层 63
3.12 畅玩应用(第2部分) 69
3.13 本章小结 71
第4 章 初识微服务 73
4.1 小单体之路 73
4.1.1 单体分析 75
4.1.2 继续前进 76
4.2 游戏化基础 77
4.2.1 分数、徽章和排行榜 77
4.2.2 应用游戏化技术 78
4.3 转向微服务架构 78
4.3.1 职责分离和松耦合 78
4.3.2 独立变更 79
4.3.3 伸缩性 79
4.4 连接不同的微服务 80
4.5 事件驱动架构 81
4.5.1 相关技术 81
4.5.2 事件驱动架构的优缺点 82
4.5.3 深入阅读 84
4.5.4 应用事件驱动架构 84
4.6 使用RabbitMQ和Spring AMQP实现事件驱动 85
4.6.1 在系统中使用RabbitMQ 86
4.6.2 Spring AMQP 86
4.7 从乘法微服务发送事件 87
4.7.1 RabbitMQ配置 87
4.7.2 对事件建模 89
4.7.3 发送事件:分发器模式 91
4.7.4 深入新游戏化微服务 95
4.8 使用RabbitMQ接收事件 111
4.8.1 订阅者 111
4.8.2 RabbitMQ配置 111
4.8.3 事件处理程序 114
4.9 在微服务之间请求数据 115
4.9.1 结合反应式模式和REST 115
4.9.2 保持领域隔离 117
4.9.3 实现REST客户端 119
4.9.4 更新游戏化业务逻辑 123
4.10 使用微服务 126
4.11 本章小结 128
第5 章 使用工具的微服务架构 131
5.1 介绍 131
5.2 抽取UI部分,并连接游戏化服务 132
5.2.1 移动静态内容 133
5.2.2 连接UI和游戏化服务 134
5.2.3 改变现有服务 136
5.2.4 全新的、更好的UI,而且(几乎)不需要额外的代价 139
5.3 当前架构 146
5.4 服务发现和负载均衡 147
5.4.1 服务发现 147
5.4.2 负载均衡 149
5.4.3 多语言系统、Eureka以及 Ribbon 151
5.5 通过API网关路由 153
5.5.1 API网关模式 153
5.5.2 让Zuul、Eureka和Ribbon一起工作 156
5.6 动手准则 158
5.6.1 使用Zuul实现API网关 158
5.6.2 使用服务发现 172
5.6.3 微服务准备好扩展了吗 174
5.6.4 通过Ribbon实现负载均衡 176
5.7 断路器和REST客户端 183
5.7.1 Hystrix断路器 183
5.7.2 Hystrix和Zuul 183
5.7.3 来自REST客户端的Hystrix 186
5.7.4 使用Feign的REST消费者 189
5.8 微服务模式和PaaS 189
5.9 本章小结 190
第6 章 测试分布式系统 193
6.1 介绍 193
6.2 设置场景 194
6.3 Cucumber的工作方式 195
6.4 动手准则 197
6.4.1 创建一个空项目并选择工具 197
6.4.2 让系统可测试 200
6.4.3 编写第一个Cucumber测试 207
6.4.4 把功能测试连接到Java代码 210
6.4.5 支持类 218
6.4.6 在feature之间重用步骤 223
6.4.7 运行测试并检查报告 225
6.5 本章小结 226
附录A 升级到Spring Boot 2.0 229
A.1 介绍 229
A.2 升级依赖项 229
A.3 修复已破坏的变化 232
A.3.1 CrudRepository接口不包含findOne()方法 232
A.3.2 actuator端点被移动 233
A.4 应用可选的更新 234
A.5 使用Spring Boot 2.0 234
后记 235
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。