-
内容大纲
随着Spring Boot和Spring Cloud的推出,Spring框架变得更加强大,支持快速开发和高效运维,非常适合实现微服务架构,能够满足微服务的并发、精细监控和可靠易用等需求。本书提供了实现大型响应式微服务的实用方法和指导原则,并通过示例全面讲解如何构建微服务。主要内容包括:微服务架构介绍以及构建微服务时面临的挑战,如何用Spring Boot和Spring Cloud开发微服务系统,微服务能力模型,如何演进微服务,微服务的日志管理和监控,如何用Docker、Mesos和 Marathon管理互联网级微服务架构,等等。
本书适合所有Spring开发人员阅读。 -
作者介绍
-
目录
第1章 微服务揭秘
1.1 微服务的演进
1.1.1 微服务演进的催化剂——业务需求
1.1.2 微服务演进的催化剂——技术演进
1.1.3 架构演进势在必行
1.2 什么是微服务
1.3 微服务蜂巢
1.4 微服务架构的设计原则
1.4.1 每个服务承担单一责任
1.4.2 微服务是自治的
1.5 微服务的特性
1.5.1 服务是一等公民
1.5.2 微服务是轻量级的
1.5.3 微服务的混合架构
1.5.4 微服务环境中的自动化
1.5.5 微服务的生态支持系统
1.5.6 微服务是动态分布式的
1.5.7 抗脆弱、快速失败和自我愈合
1.6 微服务的实例
1.6.1 一个酒店门户网站的例子
1.6.2 一个旅行社门户网站的例子
1.7 微服务架构的优势
1.7.1 支持混合架构
1.7.2 为试验和创新赋能
1.7.3 弹性伸缩和选择性扩容
1.7.4 服务可替换
1.7.5 为构建有机系统赋能
1.7.6 有助于管理技术债
1.7.7 允许不同版本并存
1.7.8 支持构建自组织系统
1.7.9 支持事件驱动架构
1.7.10 为DevOps赋能
1.8 小结
第2章 相关架构风格和用例
2.1 SOA
2.1.1 面向服务的集成
2.1.2 遗留系统现代化
2.1.3 面向服务的应用
2.1.4 用SOA迁移单体应用
2.2 十二要素应用
2.2.1 单一代码库
2.2.2 依赖捆绑
2.2.3 配置外部化
2.2.4 支撑服务可寻址
2.2.5 构建、发布和运行时的隔离
2.2.6 无状态、不共享进程
2.2.7 通过端口绑定暴露服务
2.2.8 以水平扩展实现高并发
2.2.9 以最小的开销实现可处置性
2.2.10 开发环境和生产环境的对等性
2.2.11 日志信息外部化
2.2.12 打包后台管理进程
2.3 无服务器计算
2.4 Lambda架构
2.5 DevOps、云计算和容器
2.5.1 DevOps是实现微服务架构的实践和流程
2.5.2 以云计算和容器作为微服务的自助式基础设施
2.6 响应式微服务
2.7 微服务用例
2.8 微服务先行者的共同点
2.9 微服务框架
2.10 小结
第3章 用Spring Boot构建微服务
3.1 搭建开发环境
3.2 用Spring Boot构建RESTful微服务
3.3 Spring Boot入门
3.4 开发Spring Boot微服务
3.5 开发第一个Spring Boot微服务
3.6 启用HATEOAS的Spring Boot微服务
3.7 响应式Spring Boot微服务
3.7.1 使用Spring WebFlux实现响应式微服务
3.7.2 用Spring Boot和RabbitMQ实现响应式微服务
3.8 实现微服务安全
3.8.1 用基本安全策略保护微服务
3.8.2 用OAuth2保护微服务
3.9 为微服务交互启用跨域访问
3.10 使用Spring Boot Actuator实现微服务instrumentation
3.10.1 利用JConsole监控应用
3.10.2 利用ssh监控应用
3.10.3 添加自定义健康检查模块
3.10.4 自定义指标
3.11 微服务文档化
3.12 综合实例:开发客户注册微服务
3.13 小结
第4章 应用微服务概念
4.1 微服务设计指南
4.1.1 确定微服务的边界
4.1.2 设计微服务通信方式
4.1.3 微服务编排
4.1.4 每个微服务包含多少个端口——一个还是多个
4.1.5 每个虚拟机运行多少个微服务——一个还是多个
4.1.6 规则引擎——共享还是嵌入
4.1.7 BPM和工作流的作用
4.1.8 微服务可以共享数据库吗
4.1.9 微服务可以无头吗
4.1.10 确定事务边界
4.1.11 服务端口设计的考量点
4.1.12 处理共享类库
4.1.13 微服务中的UI
4.1.14 微服务中使用API网关
4.1.15 在微服务架构中使用ESB和iPaaS
4.1.16 服务版本化的考虑
4.1.17 跨域设计
4.1.18 处理共享的引用数据
4.1.19 微服务和批量操作
4.2 小结
第5章 微服务能力模型
5.1 微服务能力模型简介
5.2 核心能力
5.2.1 服务监听器和类库
5.2.2 存储能力
5.2.3 服务实现
5.2.4 服务端口
5.3 基础设施能力
5.3.1 云计算
5.3.2 容器运行时
5.3.3 容器编排
5.4 支撑能力
5.4.1 服务网关
5.4.2 软件定义的负载均衡
5.4.3 集中式日志管理
5.4.4 服务发现
5.4.5 安全服务
5.4.6 服务配置
5.4.7 运维监控
5.4.8 依赖管理
5.4.9 数据湖
5.4.10 可靠的消息机制
5.5 流程和治理能力
5.5.1 DevOps
5.5.2 自动化工具
5.5.3 容器注册表
5.5.4 微服务文档化
5.5.5 参考架构和类库
5.6 微服务成熟度模型
5.6.1 第0级——传统
5.6.2 第1级——初级
5.6.3 第2级——中级
5.6.4 第3级——高级
5.7 微服务采用的入口
5.8 小结
第6章 微服务演进案例研究
6.1 理解PSS应用
6.1.1 业务流程视图
6.1.2 功能视图
6.1.3 架构视图
6.1.4 设计视图
6.1.5 实现视图
6.1.6 部署视图
6.2 单体之死
6.2.1 痛点
6.2.2 应急修复
6.2.3 复盘
6.3 诉诸微服务——有计划地迁移
6.3.1 业务用例
6.3.2 迁移方法
6.3.3 确定微服务边界
6.3.4 分析服务依赖关系
6.3.5 微服务迁移的优先级
6.3.6 迁移过程中的数据同步
6.3.7 管理引用数据
6.3.8 UI和Web应用
6.3.9 测试策略
6.3.10 构建生态系统能力
6.3.11 只迁移必要的模块
6.3.12 微服务的内部层次结构
6.3.13 微服务编排
6.3.14 与其他系统的集成
6.3.15 迁移共享类库
6.3.16 处理异常
6.4 目标实现
6.4.1 项目实现
6.4.2 项目运行和测试
6.5 后续工作
6.6 小结
第7章 用Spring Cloud组件扩展微服务
7.1 什么是Spring Cloud
7.2 Spring Cloud的版本
7.3 搭建BrownField航空公司PSS系统的项目环境
7.4 Spring Cloud Config
7.4.1 用配置服务器构建微服务
7.4.2 搭建配置服务器
7.4.3 理解配置服务器URL
7.4.4 处理配置变更
7.4.5 用Spring Cloud总线推送配置变更
7.4.6 搭建配置服务器的高可用集群
7.4.7 监控配置服务器的健康状态
7.4.8 用配置服务器管理配置文件
7.4.9 完成修改以使用配置服务器
7.5 将Eureka用于服务注册和发现
7.5.1 理解动态服务注册和发现
7.5.2 理解Eureka
7.5.3 搭建Eureka服务器
7.5.4 Eureka的高可用性
7.6 用Zuul代理作为API网关
7.6.1 搭建Zuul
7.6.2 Zuul的高可用性
7.7 响应式微服务流
7.8 用Spring Cloud Security 保护微服务
7.9 总结BrownField航空公司的PSS应用架构
7.10 小结
第8章 微服务的日志管理和监控
8.1 日志管理的挑战
8.2 集中式日志管理方案
8.3 日志管理方案的选取
8.3.1 云服务
8.3.2 现成的方案
8.3.3 集成一流的组件
8.3.4 自定义日志管理方案的实现
8.3.5 用Spring Cloud Sleuth实现分布式跟踪
8.4 监控微服务
8.4.1 微服务监控的挑战
8.4.2 监控工具
8.4.3 监控微服务依赖
8.4.4 用Spring Cloud Hystrix实现微服务容错
8.4.5 用Turbine聚合Hystrix流
8.5 使用数据湖做数据分析
8.6 小结
第9章 用Docker容器化微服务
9.1 BrownField公司PSS微服务的不足之处
9.2 什么是容器
9.3 虚拟机和容器的区别
9.4 容器的优势
9.5 微服务和容器
9.6 Docker简介
9.7 将微服务部署到Docker中
9.8 在Docker上运行RabbitMQ
9.9 使用Docker注册表
9.9.1 设置Docker Hub
9.9.2 将微服务发布到Docker Hub
9.10 微服务上云
9.11 在EC2上运行BrownFiled公司的微服务
9.12 容器化的未来
9.13 小结
第10章 用Mesos和Marathon扩展容器化的微服务
10.1 微服务扩容
10.1.1 理解自动扩容
10.1.2 缺失的部分
10.2 容器编排
10.2.1 为什么容器编排很重要
10.2.2 容器编排是什么
10.2.3 容器编排和微服务的关系
10.2.4 容器编排和虚拟化的关系
10.2.5 容器编排方案
10.3 用Mesos和Marathon实现容器编排
10.4 用DCOS实现Mesos和Marathon
10.5 为BrownField公司的微服务实现Mesos和Marathon
10.5.1 安装Mesos、Marathon及相关组件
10.5.2 运行Mesos和Marathon
10.6 准备部署BrownField公司的PSS微服务
10.7 小结
第11章 微服务开发生命周期
11.1 微服务开发的实践要点
11.1.1 理解业务动机和价值
11.1.2 从项目开发到产品开发的观念转变
11.1.3 选择正确的开发理念
11.1.4 使用最小可行产品的概念
11.1.5 克服遗留热点
11.1.6 建立自组织的团队
11.1.7 构建自服务云
11.1.8 构建一套微服务生态系统
11.1.9 以DevOps实践贯穿微服务开发的生命周期
11.1.10 价值驱动计划
11.1.11 持续监控和反馈
11.2 自动化开发周期
11.2.1 开发
11.2.2 集成
11.2.3 测试
11.2.4 部署
11.2.5 监控和反馈
11.2.6 配置管理
11.2.7 微服务开发治理、参考架构和类库
11.3 小结
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...