前言
第1章 微服务架构介绍1
1.1 微服务架构的出现1
1.1.1 单体应用架构1
1.1.2 SOA架构2
1.1.3 微服务架构3
1.2 微服务架构的流派5
1.3 云原生与微服务9
1.4 本章小结12
第2章 Spring Cloud总览13
2.1 Spring Cloud架构13
2.2 Spring Cloud特性16
2.2.1 Spring Cloud Context:应用上下文16
2.2.2 Spring Cloud Commons:公共抽象19
2.3 本章小结21
第3章 Spring Cloud的基础:Spring Boot22
3.1 Spring Boot简介22
3.2 构建一个微服务24
3.3 Spring Boot配置文件29
3.3.1 默认配置文件29
3.3.2 外部化配置29
3.3.3 YAML30
3.3.4 自动载入外部属性到Bean30
3.3.5 多Profile31
3.3.6 Starter32
3.3.7 自制一个Starter32
3.3.8 Actuator36
3.4 本章小结38
第4章 服务注册与发现:Eureka39
4.1 基础应用40
4.1.1 Eureka简介40
4.1.2 搭建Eureka服务注册中心40
4.1.3 搭建Eureka服务提供者42
4.1.4 搭建Eureka服务调用者43
4.1.5 Eureka服务注册和发现44
4.1.6 Consul的简单应用46
4.2 服务发现原理48
4.3 Eureka Client源码解析49
4.3.1 读取应用自身配置信息50
4.3.2 服务发现客户端52
4.3.3 拉取注册表信息56
4.3.4 服务注册61
4.3.5 初始化定时任务62
4.3.6 服务下线68
4.4 Eureka Server源码解析70
4.4.1 服务实例注册表70
4.4.2 服务注册72
4.4.3 接受服务心跳74
4.4.4 服务剔除75
4.4.5 服务下线77
4.4.6 集群同步78
4.4.7 获取注册表中服务实例信息82
4.5 进阶应用84
4.5.1 Eureka Instance和Client的元数据84
4.5.2 状态页和健康检查页端口设置85
4.5.3 区域与可用区85
4.5.4 高可用性服务注册中心86
4.6 本章小结87
第5章 声明式RESTful客户端:Spring Cloud OpenFeign88
5.1 基础应用88
5.1.1 微服务之间的交互88
5.1.2 OpenFeign简介89
5.1.3 代码示例89
5.2 源码分析91
5.2.1 核心组件与概念91
5.2.2 动态注册BeanDefinition92
5.2.3 实例初始化98
5.2.4 函数调用和网络请求107
5.3 进阶应用111
5.3.1 Decoder与Encoder的定制化111
5.3.2 请求/响应压缩112
5.4 本章小结113
第6章 断路器:Hystrix114
6.1 基础应用114
6.1.1 RestTemplate与Hystrix115
6.1.2 OpenFeign与Hystrix117
6.2 Hystrix原理118
6.2.1 服务雪崩118
6.2.2 断路器119
6.2.3 服务降级操作120
6.2.4 资源隔离121
6.2.5 Hystrix实现思路122
6.3 源码解析123
6.3.1 封装HystrixCommand123
6.3.2 HystrixCommand类结构129
6.3.3 异步回调执行命令129
6.3.4 异步执行命令和同步执行命令137
6.3.5 断路器逻辑137
6.3.6 资源隔离143
6.3.7 请求超时监控148
6.3.8 失败回滚逻辑150
6.4 进阶应用152
6.4.1 异步与异步回调执行命令152
6.4.2 继承HystrixCommand153
6.4.3 请求合并157
6.5 本章小结161
第7章 客户端负载均衡器:Spring Cloud Netflix Ribbon162
7.1 负载均衡162
7.2 基础应用163
7.3 源码分析165
7.3.1 配置和实例初始化165
7.3.2 与OpenFeign的集成167
7.3.3 负载均衡器LoadBalancerClient171
7.3.4 ILoadBalancer173
7.3.5 负载均衡策略实现177
7.4 进阶应用184
7.4.1 Ribbon API184
7.4.2 使用Netty发送网络请求185
7.4.3 只读数据库的负载均衡实现186
7.5 本章小结187
第8章 API网关:Spring Cloud Gateway189
8.1 Spring Cloud Gateway介绍189
8.2 基础应用190
8.2.1 用户服务191
8.2.2 网关服务192
8.2.3 客户端的访问195
8.3 源码解析195
8.3.1 初始化配置196
8.3.2 网关处理器197
8.3.3 路由定义定位器202
8.3.4 路由定位器205
8.3.5 路由断言208
8.3.6 网关过滤器216
8.3.7 全局过滤器227
8.3.8 API端点234
8.4 应用进阶235
8.4.1 限流机制235
8.4.2 熔断降级238
8.4.3 网关重试过滤器240
8.5 本章小结241
第9章 配置中心:Spring Cloud Config243
9.1 基础应用244
9.1.1 配置客户端244
9.1.2 配置仓库245
9.1.3 服务端246
9.1.4 配置验证248
9.1.5 配置动态更新249
9.2 源码解析250
9.2.1 配置服务器251
9.2.2 配置客户端261
9.3 应用进阶267
9.3.1 为Config Server配置多个repo268
9.3.2 客户端覆写远端的配置属性268
9.3.3 属性覆盖269
9.3.4 安全保护269
9.3.5 加密解密270
9.3.6 快速响应失败与重试机制272
9.4 本章小结272
第10章 消息驱动:Spring Cloud Stream274
10.1 消息队列274
10.2 基础应用276
10.2.1 声明和绑定通道276
10.2.2 自定义通道276
10.2.3 接收消息276
10.2.4 配置278
10.3 源码分析278
10.3.1 动态注册BeanDefinition279
10.3.2 绑定服务282
10.3.3 获取绑定器284
10.3.4 绑定生产者289
10.3.5 消息发送的流程291
10.3.6 StreamListener注解的处理293
10.3.7 绑定消费者298
10.3.8 消息的接收304
10.4 进阶应用306
10.4.1 Bin
· · · · · · (
收起)