描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115533753丛书名: 图灵程序设计丛书
Spring框架是成熟的轻量级开源框架。面向对象的特性使得其简单易用,利用它可以快速开发出高可用的Java应用。随着功能的不断丰富与增强,Spring在构建微服务方面愈发游刃有余。 本书通过一系列生动示例,全面、细致地阐述了如何利用Spring框架、Spring Boot和Spring Cloud构建微服务,以及如何利用Docker部署微服务,并用Mesos和Marathon进行管理。对于想要构建强大的互联网级应用,以满足现代业务需求的Spring开发人员来说,这本实用指南极具参考价值! – 微服务的演进、特性与优势 – SOA、“十二要素应用”以及Lambda架构 – 利用Spring Boot构建微服务 – 微服务设计的经验法则、挑战及应对方案 – 构建微服务能力模型 – 案例研究:从单体应用迁移至微服务 – 利用Spring Cloud扩展微服务 – 管理日志和实施监控的各种工具 – 利用Docker将微服务容器化 – 微服务的扩容和容器编排方案 – 利用Meso和Marathon管理微服务 – 微服务开发的流程与*实践
随着Spring Boot和Spring Cloud的推出,Spring框架变得更加强大,支持快速开发和高效运维,非常适合实现微服务架构,能够满足微服务的并发、精细监控和可靠易用等需求。《Spring微服务架构设计(第2版)》提供了实现大型响应式微服务的实用方法和指导原则,并通过示例全面讲解如何构建微服务。主要内容包括:微服务架构介绍以及构建微服务时面临的挑战,如何用Spring Boot和Spring Cloud开发微服务系统,微服务能力模型,如何演进微服务,微服务的日志管理和监控,如何用Docker、Mesos和 Marathon管理互联网级微服务架构,等等。
版权声明
第 1章 微服务揭秘 1
1.1 微服务的演进 1
1.1.1 微服务演进的催化剂——业务需求 1
1.1.2 微服务演进的催化剂——技术演进 3
1.1.3 架构演进势在必行 4
1.2 什么是微服务 5
1.3 微服务蜂巢 7
1.4 微服务架构的设计原则 8
1.4.1 每个服务承担单一责任 8
1.4.2 微服务是自治的 9
1.5 微服务的特性 10
1.5.1 服务是一等公民 10
1.5.2 微服务是轻量级的 11
1.5.3 微服务的混合架构 11
1.5.4 微服务环境中的自动化 12
1.5.5 微服务的生态支持系统 13
1.5.6 微服务是动态分布式的 13
1.5.7 抗脆弱、快速失败和自我愈合 15
1.6 微服务的实例 15
1.6.1 一个酒店门户网站的例子 15
1.6.2 一个旅行社门户网站的例子 18
1.7 微服务架构的优势 19
1.7.1 支持混合架构 19
1.7.2 为试验和创新赋能 20
1.7.3 弹性伸缩和选择性扩容 21
1.7.4 服务可替换 23
1.7.5 为构建有机系统赋能 23
1.7.6 有助于管理技术债 24
1.7.7 允许不同版本并存 25
1.7.8 支持构建自组织系统 26
1.7.9 支持事件驱动架构 27
1.7.10 为DevOps赋能 28
1.8 小结 28
第 2章 相关架构风格和用例 29
2.1 SOA 29
2.1.1 面向服务的集成 30
2.1.2 遗留系统现代化 31
2.1.3 面向服务的应用 31
2.1.4 用SOA迁移单体应用 32
2.2 十二要素应用 32
2.2.1 单一代码库 33
2.2.2 依赖捆绑 33
2.2.3 配置外部化 34
2.2.4 支撑服务可寻址 34
2.2.5 构建、发布和运行时的隔离 35
2.2.6 无状态、不共享进程 36
2.2.7 通过端口绑定暴露服务 36
2.2.8 以水平扩展实现高并发 36
2.2.9 以最小的开销实现可处置性 37
2.2.10 开发环境和生产环境的对等性 37
2.2.11 日志信息外部化 37
2.2.12 打包后台管理进程 38
2.3 无服务器计算 38
2.4 Lambda架构 39
2.5 DevOps、云计算和容器 40
2.5.1 DevOps是实现微服务架构的实践和流程 41
2.5.2 以云计算和容器作为微服务的自助式基础设施 41
2.6 响应式微服务 42
2.7 微服务用例 45
2.8 微服务先行者的共同点 46
2.9 微服务框架 48
2.10 小结 49
第3章 用Spring Boot构建微服务 50
3.1 搭建开发环境 50
3.2 用Spring Boot构建RESTful微服务 51
3.3 Spring Boot入门 51
3.4 开发Spring Boot微服务 52
3.5 开发第 一个Spring Boot微服务 53
3.6 启用HATEOAS的Spring Boot微服务 60
3.7 响应式Spring Boot微服务 64
3.7.1 使用Spring WebFlux实现响应式微服务 64
3.7.2 用Spring Boot和RabbitMQ实现响应式微服务 68
3.8 实现微服务安全 70
3.8.1 用基本安全策略保护微服务 70
3.8.2 用OAuth2保护微服务 71
3.9 为微服务交互启用跨域访问 73
3.10 使用Spring Boot Actuator实现微服务instrumentation 74
3.10.1 利用JConsole监控应用 76
3.10.2 利用ssh监控应用 76
3.10.3 添加自定义健康检查模块 77
3.10.4 自定义指标 78
3.11 微服务文档化 79
3.12 综合实例:开发客户注册微服务 80
3.13 小结 89
第4章 应用微服务概念 90
4.1 微服务设计指南 90
4.1.1 确定微服务的边界 90
4.1.2 设计微服务通信方式 94
4.1.3 微服务编排 98
4.1.4 每个微服务包含多少个端口——一个还是多个 102
4.1.5 每个虚拟机运行多少个微服务——一个还是多个 102
4.1.6 规则引擎——共享还是嵌入 103
4.1.7 BPM和工作流的作用 104
4.1.8 微服务可以共享数据库吗 106
4.1.9 微服务可以无头吗 108
4.1.10 确定事务边界 108
4.1.11 服务端口设计的考量点 110
4.1.12 处理共享类库 111
4.1.13 微服务中的UI 112
4.1.14 微服务中使用API网关 114
4.1.15 在微服务架构中使用ESB和iPaaS 115
4.1.16 服务版本化的考虑 116
4.1.17 跨域设计 118
4.1.18 处理共享的引用数据 118
4.1.19 微服务和批量操作 119
4.2 小结 121
第5章 微服务能力模型 122
5.1 微服务能力模型简介 122
5.2 核心能力 123
5.2.1 服务监听器和类库 124
5.2.2 存储能力 124
5.2.3 服务实现 124
5.2.4 服务端口 124
5.3 基础设施能力 125
5.3.1 云计算 125
5.3.2 容器运行时 125
5.3.3 容器编排 126
5.4 支撑能力 126
5.4.1 服务网关 126
5.4.2 软件定义的负载均衡 126
5.4.3 集中式日志管理 127
5.4.4 服务发现 127
5.4.5 安全服务 127
5.4.6 服务配置 128
5.4.7 运维监控 128
5.4.8 依赖管理 128
5.4.9 数据湖 129
5.4.10 可靠的消息机制 130
5.5 流程和治理能力 130
5.5.1 DevOps 130
5.5.2 自动化工具 130
5.5.3 容器注册表 131
5.5.4 微服务文档化 131
5.5.5 参考架构和类库 132
5.6 微服务成熟度模型 133
5.6.1 第0级——传统 133
5.6.2 第 1级——初级 134
5.6.3 第 2级——中级 134
5.6.4 第3级——高级 134
5.7 微服务采用的入口 135
5.8 小结 136
第6章 微服务演进案例研究 137
6.1 理解PSS应用 137
6.1.1 业务流程视图 137
6.1.2 功能视图 138
6.1.3 架构视图 139
6.1.4 设计视图 139
6.1.5 实现视图 140
6.1.6 部署视图 141
6.2 单体之死 142
6.2.1 痛点 142
6.2.2 应急修复 142
6.2.3 复盘 143
6.3 诉诸微服务——有计划地迁移 146
6.3.1 业务用例 147
6.3.2 迁移方法 148
6.3.3 确定微服务边界 149
6.3.4 分析服务依赖关系 149
6.3.5 微服务迁移的优先级 157
6.3.6 迁移过程中的数据同步 158
6.3.7 管理引用数据 160
6.3.8 UI和Web应用 161
6.3.9 测试策略 163
6.3.10 构建生态系统能力 164
6.3.11 只迁移必要的模块 164
6.3.12 微服务的内部层次结构 165
6.3.13 微服务编排 166
6.3.14 与其他系统的集成 166
6.3.15 迁移共享类库 167
6.3.16 处理异常 167
6.4 目标实现 169
6.4.1 项目实现 170
6.4.2 项目运行和测试 171
6.5 后续工作 174
6.6 小结 175
第7章 用Spring Cloud组件扩展微服务 176
7.1 什么是Spring Cloud 176
7.2 Spring Cloud的版本 177
7.3 搭建BrownField航空公司PSS系统的项目环境 177
7.4 Spring Cloud Config 178
7.4.1 用配置服务器构建微服务 180
7.4.2 搭建配置服务器 181
7.4.3 理解配置服务器URL 183
7.4.4 处理配置变更 187
7.4.5 用Spring Cloud总线推送配置变更 187
7.4.6 搭建配置服务器的高可用集群 188
7.4.7 监控配置服务器的健康状态 189
7.4.8 用配置服务器管理配置文件 189
7.4.9 完成修改以使用配置服务器 189
7.5 将Eureka用于服务注册和发现 190
7.5.1 理解动态服务注册和发现 190
7.5.2 理解Eureka 191
7.5.3 搭建Eureka服务器 192
7.5.4 Eureka的高可用性 196
7.6 用Zuul代理作为API网关 198
7.6.1 搭建Zuul 199
7.6.2 Zuul的高可用性 203
7.7 响应式微服务流 205
7.8 用Spring Cloud Security 保护微服务 208
7.9 总结BrownField航空公司的PSS应用架构 209
7.10 小结 211
第8章 微服务的日志管理和监控 212
8.1 日志管理的挑战 212
8.2 集中式日志管理方案 213
8.3 日志管理方案的选取 215
8.3.1 云服务 215
8.3.2 现成的方案 215
8.3.3 集成一流的组件 215
8.3.4 自定义日志管理方案的实现 216
8.3.5 用Spring Cloud Sleuth实现分布式跟踪 220
8.4 监控微服务 222
8.4.1 微服务监控的挑战 222
8.4.2 监控工具 224
8.4.3 监控微服务依赖 225
8.4.4 用Spring Cloud Hystrix实现微服务容错 226
8.4.5 用Turbine聚合Hystrix流 229
8.5 使用数据湖做数据分析 232
8.6 小结 233
第9章 用Docker容器化微服务 234
9.1 BrownField公司PSS微服务的不足之处 234
9.2 什么是容器 235
9.3 虚拟机和容器的区别 236
9.4 容器的优势 237
9.5 微服务和容器 238
9.6 Docker简介 239
9.7 将微服务部署到Docker中 242
9.8 在Docker上运行RabbitMQ 246
9.9 使用Docker注册表 246
9.9.1 设置Docker Hub 247
9.9.2 将微服务发布到Docker Hub 247
9.10 微服务上云 247
9.11 在EC2上运行BrownFiled公司的微服务 248
9.12 容器化的未来 249
9.13 小结 249
第 10章 用Mesos和Marathon扩展容器化的微服务 250
10.1 微服务扩容 250
10.1.1 理解自动扩容 251
10.1.2 缺失的部分 252
10.2 容器编排 252
10.2.1 为什么容器编排很重要 253
10.2.2 容器编排是什么 253
10.2.3 容器编排和微服务的关系 255
10.2.4 容器编排和虚拟化的关系 256
10.2.5 容器编排方案 256
10.3 用Mesos和Marathon实现容器编排 259
10.4 用DCOS实现Mesos和Marathon 262
10.5 为BrownField公司的微服务实现Mesos和Marathon 263
10.5.1 安装Mesos、Marathon及相关组件 263
10.5.2 运行Mesos和Marathon 264
10.6 准备部署BrownField公司的PSS微服务 266
10.7 小结 269
第 11章 微服务开发生命周期 270
11.1 微服务开发的实践要点 270
11.1.1 理解业务动机和价值 270
11.1.2 从项目开发到产品开发的观念转变 270
11.1.3 选择正确的开发理念 271
11.1.4 使用最小可行产品的概念 271
11.1.5 克服遗留热点 271
11.1.6 建立自组织的团队 272
11.1.7 构建自服务云 274
11.1.8 构建一套微服务生态系统 274
11.1.9 以DevOps实践贯穿微服务开发的生命周期 274
11.1.10 价值驱动计划 275
11.1.11 持续监控和反馈 275
11.2 自动化开发周期 276
11.2.1 开发 277
11.2.2 集成 278
11.2.3 测试 279
11.2.4 部署 282
11.2.5 监控和反馈 282
11.2.6 配置管理 282
11.2.7 微服务开发治理、参考架构和类库 283
11.3 小结 283
评论
还没有评论。