目录Contents



第1章微服务介绍1
1.1什么是微服务1
1.1.1为什么会有微服务1
1.1.2微服务的九大特征3
1.1.3为什么选择Spring Cloud作为微服务架构6
1.2Spring Cloud和Spring Boot的关系6
第2章微服务开发基础7
2.1搭建基于Spring Boot框架的工程7
2.1.1Spring Boot的特征8
2.1.2搭建Spring Boot框架8
2.1.3Spring Boot常用注解11
2.1.4核心配置文件15
2.2Spring Boot集成18
2.2.1Spring Boot集成MyBatis18
2.2.2Spring Boot集成MVC20
2.3Spring Boot事务处理21
2.3.1基于注解的事务管理21
2.3.2编程式事务管理21
2.3.3声明式事务管理22
第3章注册和发现服务23
3.1背景介绍23
3.2Nacos的安装与配置24
3.2.1Nacos的下载与安装24
3.2.2Nacos的管理界面25
3.3服务的注册和发现26◆云计算与微服务(微课版)目录
3.3.1服务的注册26
3.3.2服务的发现31
3.3.3订阅服务34
3.4服务的负载均衡37
3.4.1负载均衡的原理37
3.4.2负载均衡的算法38
3.5在Nacos中如何实现负载均衡39
3.5.1Nacos的负载均衡机制概述39
3.5.2基于Spring Cloud LoadBalancer实现的Nacos负载均衡39
第4章Nacos配置中心49
4.1配置中心概述49
4.1.1背景49
4.1.2应用50
4.1.3Nacos概述50
4.2Nacos使用案例51
4.2.1环境要求51
4.2.2使用Nacos配置中心52
4.2.3Data ID格式55
4.3配置信息自动刷新56
4.3.1@RefreshScope注解56
4.3.2配置信息自动刷新过程57
4.4配置中心持久化58
4.4.1环境要求58
4.4.2实现步骤58
第5章OpenFeign的原理与使用60
5.1OpenFeign介绍60
5.1.1服务间调用60
5.1.2Feign与OpenFeign61
5.2OpenFeign的原理62
5.2.1动态代理技术62
5.2.2请求拦截器62
5.2.3内置的负载均衡支持64
5.3使用OpenFeign64
5.4OpenFeign的使用场景65
5.5配置属性的解析69
5.6OpenFeign的扩展和调优71
5.6.1请求超时和重试71
5.6.2文件上传和下载73
5.6.3并发访问和线程池配置74
第6章Sentinel实现服务限流与熔断77
6.1Sentinel概述77
6.1.1Sentinel特性77
6.1.2Sentinel组成78
6.1.3Sentinel基本概念78
6.2Sentinel功能和设计理念79
6.2.1流量控制79
6.2.2熔断降级79
6.2.3系统负载保护80
6.3Sentinel的基本使用80
6.3.1定义资源的方法81
6.3.2Sentinel规则种类82
6.3.3基于并发线程数/QPS的流量控制82
6.3.4流量控制规则的属性和设置方式83
6.3.5基于调用关系的流量控制84
6.3.6QPS流控效果85
6.4熔断降级规则86
6.4.1熔断降级规则属性和设置方式86
6.4.2熔断策略88
6.4.3系统保护规则88
6.4.4来源访问控制规则89
6.4.5热点参数规则90
6.4.6Sentinel控制台92
6.5Spring Cloud集成Sentinel案例93
6.5.1Maven依赖93
6.5.2环境要求93
6.5.3基础项目创建94
6.5.4Sentinel实现服务流量控制95
6.5.5Sentinel实现服务熔断降级97
6.5.6Nacos持久化Sentinel规则99
第7章Gateway微服务网关104
7.1Gateway概述104
7.1.1Gateway常用术语105
7.1.2Gateway的特点105
7.1.3Gateway执行流程105
7.2Gateway案例106
7.2.1入门案例106
7.2.2路由服务108
7.2.3网关服务113
7.3Gateway路由谓词114
7.3.1Cookie路由谓词示例115
7.3.2Header路由谓词示例116
7.3.3Method路由谓词示例116
7.3.4Path路由谓词示例116
7.3.5Weight路由谓词示例117
7.4Gateway过滤器117
7.4.1GatewayFilter118
7.4.2AddRequestHeader过滤器118
7.4.3AddResponseHeader过滤器119
7.4.4StripPrefix过滤器119
7.4.5自定义GatewayFilter120
7.4.6GlobalFilter122
7.4.7ReactiveLoadBalancerClientFilter123
7.4.8自定义全局过滤器124
第8章分布式事务(Seata)126
8.1分布式事务基础 126
8.1.1事务126
8.1.2事务的特征127
8.1.3事务的隔离级别127
8.1.4本地事务128
8.1.5分布式事务129
8.2分布式事务的理论模型130
8.2.1X/Open分布式事务处理模型130
8.2.2三阶段提交协议133
8.2.3柔性事务134
8.3Seata概述135
8.4Seata支持的事务模式136
8.4.1Seata AT模式136
8.4.2Seata TCC模式138
8.4.3Seata Saga 模式139
8.4.4Seata XA模式141
8.5安装Seata144
8.5.1下载环境144
8.5.2创建数据库144
8.5.3配置文件146
8.5.4Nacos配置148
8.5.5启动148
8.6Seata AT模式实例149
8.6.1开发案例149
8.6.2创建父工程150
第9章消息队列(RocketMQ)159
9.1RocketMQ概述159
9.1.1RocketMQ是什么160
9.1.2RocketMQ的特点160
9.1.3RocketMQ使用场景160
9.1.4RocketMQ与其他中间件的对比161
9.2RocketMQ架构162
9.2.1topic名词解释162
9.2.2name server163
9.2.3broker163
9.2.4producer164
9.2.5consumer164
9.3RocketMQ的环境搭建164
9.3.1常见的部署方式164
9.3.2下载与配置165
9.3.3在Docker下的快速部署168
9.4RocketMQ的使用方法170
9.5RocketMQ的内部原理175
9.5.1RocketMQ 如何保证消息的可靠性和一致性175
9.5.2RocketMQ 如何实现消息的事务性处理176
9.5.3RocketMQ 的消息存储如何优化176
9.5.4RocketMQ 如何处理消息重复和消息丢失176
9.5.5RocketMQ 的延时消息如何实现177
第10章微服务部署(Docker)178
10.1Docker的基本概念178
10.1.1Docker与传统部署的对比179
10.1.2什么是Docker179
10.1.3Docker镜像179
10.1.4Docker 容器179
10.1.5Docker 仓库180
10.1.6Docker CLI180
10.1.7Dockerfile180
10.1.8Docker常用命令180
10.1.9总结182
10.2Docker 的使用场景182
10.2.1Docker镜像的创建和使用183
10.2.2创建和管理 Docker 容器185
10.2.3Docker网络和存储186
10.2.4使用Docker进行持续集成和持续部署188
10.3Docker 安全190
10.4Docker 的扩展和集群化191