目录
第1章初识微服务
1.1了解软件系统架构的演进
1.1.1单体架构
1.1.2垂直分布式架构
1.1.3SOA架构
1.1.4微服务架构
1.2认识Spring Cloud微服务框架
1.2.1Spring Cloud Netflix
1.2.2Spring Cloud Alibaba
1.3搭建Spring Cloud Alibaba项目
1.3.1搭建分布式项目
1.3.2分布式项目引入Spring Cloud Alibaba依赖
1.4综合案例: Spring Cloud Alibaba初体验
1.4.1案例任务
1.4.2任务分析
1.4.3任务实施
1.5小结
1.6课后练习: 创建Spring Cloud Alibaba项目
第2章Spring Cloud Alibaba之注册中心
2.1初识Nacos
2.1.1Nacos的概念
2.1.2Nacos的基本架构
2.1.3Nacos数据模型
2.2Nacos环境搭建
2.2.1版本对应关系
2.2.2搭建Nacos服务端环境
2.2.3搭建Nacos客户端环境
2.3使用Nacos注册中心
2.3.1注册中心的CP和AP模式
2.3.2服务注册和服务发现
2.3.3注册中心基本使用
2.3.4CP模式保护阈值使用
2.3.5注册中心其他常用配置
2.4使用Nacos配置中心
2.4.1配置中心基本功能
2.4.2配置中心基本使用方法
2.4.3配置热更新的实现方式
2.5综合案例: Nacos配置共享
2.5.1案例任务
2.5.2任务分析
2.5.3任务实施
2.6小结
2.7课后练习: Nacos服务注册和相互调用
第3章Spring Cloud Alibaba之负载均衡
3.1初识负载均衡
3.1.1常用的负载均衡策略
3.1.2服务端负载均衡
3.1.3客户端负载均衡
3.2LoadBalancer负载均衡基本流程
3.3使用LoadBalancer
3.3.1轮询策略
3.3.2随机选择策略
3.3.3Nacos权重分配策略
3.4负载均衡机制下的分布式会话管理
3.4.1初识Spring Session
3.4.2使用Spring Session
3.5综合案例: LoadBalancer自定义负载均衡策略
3.5.1案例任务
3.5.2任务分析
3.5.3任务实施
3.6小结
3.7课后练习: 自定义基于时间规则的负载均衡策略
第4章Spring Cloud Alibaba之服务通信
4.1微服务系统中的服务通信方式
4.2基于接口的远程服务通信——RestTemplate
4.2.1初识RestTemplate
4.2.2使用RestTemplate
4.2.3RestTemplate参数传递
4.2.4RestTemplate超时配置
4.3基于接口的远程服务通信——OpenFeign
4.3.1初识OpenFeign
4.3.2使用OpenFeign
4.3.3OpenFeign参数传递
4.3.4OpenFeign超时配置
4.3.5OpenFeign日志配置
4.3.6OpenFeign数据压缩
4.3.7OpenFeign连接优化
4.4基于消息队列的远程服务通信——RocketMQ
4.4.1什么是消息队列
4.4.2为什么需要消息队列
4.4.3RocketMQ简介
4.4.4安装RocketMQ服务端
4.4.5安装RocketMQ客户端
4.4.6使用RocketMQ
4.5综合案例: 利用OpenFeign实现简单的电商下单功能
4.5.1案例任务
4.5.2任务分析
4.5.3任务实施
4.6小结
4.7课后练习: 利用RestTemplate实现简单的电商下单功能
第5章Spring Cloud Alibaba之流量控制
5.1初识Sentinel
5.1.1Sentinel的由来
5.1.2Sentinel简介
5.1.3Sentinel对比Hystrix
5.1.4Sentinel的基本使用
5.1.5JMeter压力测试工具
5.2Sentinel规则设置
5.2.1流控规则
5.2.2熔断规则
5.2.3热点规则
5.2.4授权规则
5.2.5系统规则
5.3Sentinel自定义异常处理
5.3.1初识@SentinelResource注解
5.3.2使用@SentinelResource注解
5.3.3Sentinel统一处理限流异常
5.4服务远程通信整合Sentinel
5.4.1RestTemplate整合Sentinel
5.4.2OpenFeign整合Sentinel
5.5综合案例: 基于Nacos持久化存储Sentinel流控规则
5.5.1案例任务
5.5.2任务分析
5.5.3任务实施
5.6小结
5.7课后练习: 基于Nacos持久化存储Sentinel熔断规则
第6章Spring Cloud Alibaba之服务网关
6.1初识Gateway
6.1.1Gateway简介
6.1.2Gateway的基本使用
6.1.3Gateway整合Naocs
6.2Gateway断言的使用方法
6.2.1DateTime类型断言工厂
6.2.2Cookie类型断言工厂
6.2.3Header类型断言工厂
6.2.4Host类型断言工厂
6.2.5Method类型断言工厂
6.2.6Path类型断言工厂
6.2.7Query类型断言工厂
6.2.8RemoteAddr类型断言工厂
6.2.9Weight类型断言工厂
6.2.10自定义断言工厂
6.3Gateway过滤器的使用方法
6.3.1局部过滤器
6.3.2全局过滤器
6.4Gateway跨域设置
6.4.1全局跨域配置
6.4.2局部跨域配置
6.5Gateway整合Sentinel
6.5.1Gateway整合Sentinel实现流控
6.5.2Gateway整合Sentinel实现降级
6.6综合案例: 搭建高可用Gateway集群
6.6.1案例任务
6.6.2任务分析
6.6.3任务实施
6.7小结
6.8课后练习: 自主练习搭建高可用Gateway集群
第7章Spring Cloud Alibaba之分布式事务管理
7.1初识分布式事务
7.1.1分布式事务的由来
7.1.2分布式事务处理模型和协议
7.2初识Seata
7.2.1Seata的架构
7.2.2Seata的四种事务模式
7.3安装和使用Seata
7.3.1安装Seata服务端
7.3.2安装和使用Seata客户端
7.4综合案例: Seata TCC模式事务管理
7.4.1案例任务
7.4.2任务分析
7.4.3任务实施
7.5小结
7.6课后练习: Seata在网购场景下的分布式事务管理
第8章Spring Cloud Alibaba之分布式链路追踪
8.1初识SkyWalking
8.1.1SkyWalking简介
8.1.2SkyWalking架构
8.2安装部署SkyWalking
8.2.1部署SkyWalking服务端
8.2.2部署SkyWalking客户端
8.3使用SkyWalking
8.3.1初识SkyWalking的Web页面
8.3.2SkyWalking方法级的链路追踪
8.3.3SkyWalking日志收集
8.3.4SkyWalking告警功能
8.4综合案例: SkyWalking利用邮件发送告警信息
8.4.1案例任务
8.4.2任务分析
8.4.3任务实施
8.5小结
8.6课后练习: 集成网关模块实现分布式链路追踪
第9章Spring Cloud Alibaba项目部署
9.1基于Jar部署Spring Cloud Alibaba项目
9.2基于War部署Spring Cloud Alibaba项目
9.3小结
9.4课后练习: 打包部署Spring Cloud Alibaba项目
参考文献