第1篇 入门
第1章 进入微服务世界
1.1 系统架构的发展阶段
1.1.1 单体应用阶段
1.1.2 垂直应用阶段
1.1.3 分布式系统阶段
1.1.4 服务治理阶段
1.1.5 微服务阶段
1.1.6 服务网格阶段
1.2 主流的微服务框架
1.2.1 主流微服务框架一览表
1.2.2 Dubbo
1.2.3 Spring Cloud
1.3 服务网格(Service Mesh)框架Istio
1.4 比较Dubbo、Spring Cloud和Istio
1.4.1 对比架构
1.4.2 对比各项数据
1.4.3 总结
第2章 准备开发环境和工具
2.1 搭建环境
2.1.1 安装Java开发环境JDK
2.1.2 配置JDK的环境变量
2.2 安装和配置Maven
2.2.1 安装和配置
2.2.2 认识pom.xml文件
2.2.3 了解Maven的运作方式
2.2.4 配置国内仓库
2.3 安装及配置开发工具IDEA
2.3.1 安装IDEA
2.3.2 配置IDEA的Maven环境
2.3.3 安装Spring Assistant插件
2.4 安装及配置开发工具Eclipse
2.4.1 安装Eclipse
2.4.2 安装Spring Tools 4插件
2.4.3 配置Eclipse的Maven环境
2.4.4 创建Spring Cloud项目
2.5 熟悉Spring官方开发工具STS
2.6 如何使用本书源码
2.6.1 在IDEA中使用
2.6.2 在Eclipse(STS)中使用
第3章 实例1:用Spring Cloud实现一个微服务系统
3.1 本实例的架构和实现步骤
3.2 创建Spring Cloud项目
3.3 用Eureka实现“服务中心”
3.3.1 添加配置
3.3.2 实现“服务中心”集群(满足高可用)
3.3.3 打包和部署“服务中心”
3.4 用Eureka实现“服务提供者”
3.4.1 实现“服务提供者”的客户端
3.4.2 实现“服务提供者”的接口
3.4.3 检查服务的有效性
3.4.4 实现“服务提供者”集群
3.5 用Feign实现“服务消费者”
3.5.1 用Feign实现“服务消费者”的客户端
3.5.2 调用“服务提供者”的接口
3.6 测试微服务系统
第2篇 基础
第4章 认识微服务
4.1 微服务的优点和缺点
4.1.1 微服务的优点
4.1.2 微服务的缺点
4.2 微服务设计的原则
4.3 领域驱动设计(DDD)
4.4 跨服务的事务管理模式
4.4.1 2PC/3PC算法模式
4.4.2 TCC事务机制模式
4.4.3 消息中间件模式
4.4.4 Saga模式
4.4.5 Paxos算法模式
4.5 跨服务的查询模式
4.5.1 API组合器模式
4.5.2 CQRS模式
4.6 微服务部署
4.6.1 部署模式
4.6.2 升级模式
4.7 微服务架构与云原生的关系
4.7.1 了解云原生
4.7.2 微服务架构和云原生架构的区别
第5章 Spring Cloud基础
5.1 了解Spring Cloud生态
5.1.1 Spring Cloud的总体架构
5.1.2 主要子项目
5.1.3 Netflix家族项目
5.1.4 阿里巴巴家族项目
5.1.5 其他子项目
5.1.6 常用的技术栈
5.2 了解Spring Cloud
5.2.1 Spring Cloud与Spring、Spring Boot的关系
5.2.2 Spring Cloud的版本
5.2.3 Spring Cloud项目的结构
5.2.4 Spring Cloud的入口类
5.2.5 Spring Cloud的自动配置
5.2.6 开箱即用
5.3 了解注解
5.3.1 什么是注解
5.3.2 Spring Boot的系统注解
5.3.3 Spring Boot的常用注解
5.3.4 Spring Cloud的常用注解
5.4 了解Starter
5.4.1 Spring Boot的Starter
5.4.2 Spring Cloud的Starter
5.4.3 如何使用Starter
5.5 使用配置文件
5.5.1 配置文件application.properties
5.5.2 实例2:使用配置文件application.properties
5.5.3 配置文件application.yml
5.5.4 实例3:使用配置文件application.yml
5.5.5 实例4:用application.yml和application.properties配置多环境
5.5.6 了解application.yml和application.properties的迁移
5.5.7 比较配置文件bootstrap和application
5.6 应用程序分层开发模式——MVC
5.6.1 了解MVC模式
5.6.2 MVC和三层架构的关系
5.7 响应式编程——WebFlux
5.7.1 什么是WebFlux
5.7.2 比较MVC和WebFlux
5.7.3 比较Mono和Flux
5.7.4 开发WebFlux的流程
5.8 了解Spring Cloud Commons
5.8.1 Spring Cloud的上下文
5.8.2 Spring Cloud的公共抽象类
第3篇 进阶
第6章 用Consul实现服务治理
6.1 为什么需要服务治理
6.2 主流的“服务中心”
6.2.1 Eureka
6.2.2 Zookeeper
6.2.3 ETCD
6.2.4 Consul
6.2.5 比较Eureka、Consul、ETCD、Zookeeper和Nacos
6.2.6 了解CAP(一致性、可用性、分区容错性)
6.2.7 在容器化时代如何选择“服务中心”
6.3 认识“服务发现”接口
6.3.1 如何