作者 |
尹吉欢 朱荣鑫 张天 黄迪璇 |
丛书名 |
云计算与虚拟化技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782107241261 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8060180 - Spring Cloud微服务:入门、实战与进阶--------------------------- 内容简介 这是一部从技术原理、工程实践和进阶提升3个维度讲解Spring Cloud微服务架构与开发的著作。 作者在Spring Cloud微服务领域有丰富的工程实践经验,它将带领读者零基础入门Spring Cloud微服务,并快速掌握动手实践能力,最终进阶为Spring Cloud微服务领域的技术达人。 全书共21章,分为4个部分: 第一部分 准备篇(第1~2章) 首先对微服务和Spring Cloud的概念、优劣势、功能模块等做了整体性的介,然后演示了如何搭建Spring Cloud的开发环境,最后对Spring Boot做了详细的介绍。 第二部分 基础篇(第3~7章) 对Eureka 注册中心、客户端负载均衡 Ribbon、声明式 REST 客户端 Feign、Hystrix 服务容错处理、API 网关等Spring Cloud的重要模块的技术原理、配置、使用等做了详尽的讲解。 第三部分 实战篇(第8~14章) 对微服务架构中的普遍问题给出了实战解决方案,包括选择配置中心、自研发配置中心、分布式跟踪、微服务安全认证、Spring Boot Admin 管理微服务、快速生成 API 文档等实用性内容。 第四部分 高级篇(15-21) 重点讲解了Spring Cloud的扩展性的使用,比如API网关、微服务的缓存和存储、分布式事务解决方案、任务调度、分库分表,以及大量优秀的生产实践经验等。 . ---------------------------8052585 - Spring Cloud微服务架构进阶--------------------------- 本书重点介绍微服务架构的Spring Cloud框架,在实践的基础上进行用法的拓展与相关组件的源码分析,包括:服务发现、负载均衡、断路、声明式HTTP调用客户端、网关、分布式配置中心、安全权限、消息总线等组件。本书适合Java开发人员,特别适合正在进行微服务化改造的开发人员、架构师,在改造过程中进行参考与进阶应用。 |
目录 |
[套装书具体书目] 8052585 - Spring Cloud微服务架构进阶 - 9787111608684 - 机械工业出版社 - 定价 89 8060180 - Spring Cloud微服务:入门、实战与进阶 - 9787111627319 - 机械工业出版社 - 定价 89 ---------------------------8060180 - Spring Cloud微服务:入门、实战与进阶--------------------------- 赞誉 前言 第一部分 准备篇 第1章 Spring Cloud 与微服务概述 2 1.1 传统的单体应用 2 1.1.1 改进单体应用的架构 2 1.1.2 向微服务靠拢 3 1.2 什么是微服务 4 1.2.1 使用微服务架构的优势和劣势 4 1.2.2 重构前的准备工作 5 1.3 什么是Spring Cloud 5 1.3.1 Spring Cloud模块介绍 6 1.3.2 Spring Cloud版本介绍 6 1.4 本章小结 7 第2章 实战前的准备工作 8 2.1 开发环境的准备 8 2.2 Spring Boot入门 9 2.2.1 Spring Boot简介 9 2.2.2 搭建Spring Boot项目 9 2.2.3 编写第一个REST接口 11 2.2.4 读取配置文件 11 2.2.5 profiles多环境配置 13 2.2.6 热部署 13 2.2.7 actuator监控 15 2.2.8 自定义actuator端点 17 2.2.9 统一异常处理 18 2.2.10 异步执行 20 2.2.11 随机端口 22 2.2.12 编译打包 24 2.3 Spring Boot Starter自定义 25 2.3.1 Spring Boot Starter项目创建 25 2.3.2 自动创建客户端 26 2.3.3 使用Starter 27 2.3.4 使用注解开启Starter自动构建 27 2.3.5 使用配置开启Starter自动构建 28 2.3.6 配置Starter内容提示 29 2.4 本章小结 29 第二部分 基础篇 第3章 Eureka 注册中心 32 3.1 Eureka 32 3.2 使用 Eureka 编写注册中心服务 33 3.3 编写服务提供者 35 3.3.1 创建项目注册到Eureka 35 3.3.2 编写提供接口 36 3.4 编写服务消费者 37 3.4.1 直接调用接口 37 3.4.2 通过Eureka来消费接口 38 3.5 开启 Eureka 认证 38 3.6 Eureka 高可用搭建 39 3.6.1 高可用原理 39 3.6.2 搭建步骤 40 3.7 常用配置讲解 41 3.7.1 关闭自我保护 41 3.7.2 自定义Eureka的 InstanceID 41 3.7.3 自定义实例跳转链接 42 3.7.4 快速移除已经失效的服务信息 43 3.8 扩展使用 44 3.8.1 Eureka REST API 44 3.8.2 元数据使用 46 3.8.3 EurekaClient使用 47 3.8.4 健康检查 49 3.8.5 服务上下线监控 50 3.9 本章小结 51 第4章 客户端负载均衡 Ribbon 52 4.1 Ribbon 52 4.1.1 Ribbon模块 52 4.1.2 Ribbon 使用 53 4.2 RestTemplate 结合 Ribbon 使用 54 4.2.1 使用 RestTemplate 与整合 Ribbon 54 4.2.2 RestTemplate 负载均衡示例 57 4.2.3 @LoadBalanced 注解原理 58 4.2.4 Ribbon API 使用 62 4.2.5 Ribbon 饥饿加载 63 4.3 负载均衡策略介绍 64 4.4 自定义负载策略 65 4.5 配置详解 66 4.5.1 常用配置 66 4.5.2 代码配置 Ribbon 67 4.5.3 配置文件方式配置Ribbon 67 4.6 重试机制 68 4.7 本章小结 69 第5章 声明式REST客户端Feign 70 5.1 使用 Feign 调用服务接口 70 5.1.1 在Spring Cloud中集成Feign 71 5.1.2 使用Feign调用接口 71 5.2 自定义 Feign的配置 72 5.2.1 日志配置 72 5.2.2 契约配置 73 5.2.3 Basic认证配置 74 5.2.4 超时时间配置 75 5.2.5 客户端组件配置 75 5.2.6 GZIP压缩配置 76 5.2.7 编码器解码器配置 77 5.2.8 使用配置自定义Feign的配置 78 5.2.9 继承特性 78 5.2.10 多参数请求构造 80 5.3 脱离 Spring Cloud 使用 Feign 80 5.3.1 原生注解方式 81 5.3.2 构建Feign对象 82 5.3.3 其他配置 83 5.4 本章小结 83 第6章 Hystrix 服务容错处理 84 6.1 Hystrix 84 6.1.1 Hystrix的简单使用 84 6.1.2 回退支持 85 6.1.3 信号量策略配置 86 6.1.4 线程隔离策略配置 86 6.1.5 结果缓存 87 6.1.6 缓存清除 88 6.1.7 合并请求 89 6.2 在 Spring Cloud 中使用Hystrix 91 6.2.1 简单使用 91 6.2.2 配置详解 92 6.2.3 Feign整合Hystrix服务容错 95 6.2.4 Feign中禁用Hystrix 97 6.3 Hystrix 监控 97 6.4 整合 Dashboard 查看监控数据 98 6.5 Turbine 聚合集群数据 100 6.5.1 Turbine使用 100 6.5.2 context-path导致监控失败 101 6.6 本章小结 102 第7章 API网关 103 7.1 Zuul 简介 103 7.2 使用 Zuul 构建微服务网关 104 7.2.1 简单使用 104 7.2.2 集成Eureka 105 7.3 Zuul 路由配置 105 7.4 Zuul过滤器讲解 106 7.4.1 过滤器类型 106 7.4.2 请求生命周期 107 7.4.3 使用过滤器 108 7.4.4 过滤器禁用 109 7.4.5 过滤器中传递数据 110 7.4.6 过滤器拦截请求 111 7.4.7 过滤器中异常处理 113 7.5 Zuul 容错和回退 115 7.5.1 容错机制 115 7.5.2 回退机制 116 7.6 Zuul使用小经验 118 7.6.1 /routes 端点 118 7.6.2 /filters 端点 118 7.6.3 文件上传 119 7.6.4 请求响应信息输出 121 7.6.5 Zuul自带的Debug功能 124 7.7 Zuul 高可用 126 7.8 本章小结 127 第三部分 实战篇 第8章 API 网关之Spring Cloud Gateway 130 8.1 Spring Cloud Gateway介绍 130 8.2 Spring Cloud Gateway工作原理 131 8.3 Spring Cloud Gateway快速上手 131 8.3.1 创建Gateway项目 131 8.3.2 路由转发示例 132 8.3.3 整合Eureka路由 133 8.3.4 整合Eureka的默认路由 133 8.4 Spring Cloud Gateway路由断言工厂 134 8.4.1 路由断言工厂使用 134 8.4.2 自定义路由断言工厂 136 8.5 Spring Cloud Gateway过滤器工厂 137 8.5.1 Spring Cloud Gateway过滤器工厂使用 137 8.5.2 自定义Spring Cloud Gateway过滤器工厂 138 8.6 全局过滤器 140 8.7 实战案例 143 8.7.1 限流实战 143 8.7.2 熔断回退实战 145 8.7.3 跨域实战 145 8.7.4 统一异常处理 147 8.7.5 重试机制 150 8.8 本章小结 151 第9章 自研分布式配置管理 152 9.1 自研配置管理框架 Smconf 简介 152 9.2 Smconf 工作原理 153 9.3 Smconf 部署 154 9.3.1 Mongodb 安装 154 9.3.2 Zookeeper 安装 155 9.3.3 Smconf Server 部署 156 9.4 项目中集成 Smconf 157 9.4.1 集成Smconf 157 9.4.2 使用Smconf 158 9.4.3 配置更新回调 159 9.5 Smconf 详细使用 160 9.5.1 源码编译问题 160 9.5.2 后台账号管理 160 9.5.3 REST API 161 9.6 Smconf 源码解析 163 9.6.1 Client启动 163 9.6.2 启动加载配置 165 9.6.3 配置修改推送原理 166 9.7 本章小结 167 第10章 分布式配置中心Apollo 168 10.1 Apollo简介 168 10.2 Apollo的核心功能点 168 10.3 Apollo核心概念 170 10.4 Apollo本地部署 171 10.5 Apollo Portal管理后台使用 172 10.6 Java中使用Apollo 174 10.6.1 普通Java项目中使用 174 10.6.2 Spring Boot中使用 177 10.7 Apollo的架构设计 179 10.7.1 Apollo架构设计介绍 179 10.7.2 Apollo服务端设计 181 10.7.3 Apollo客户端设计 188 10.7.4 Apollo高可用设计 195 10.8 本章小结 196 第11章 Sleuth 服务跟踪 197 11.1 Spring Cloud 集成 Sleuth 197 11.2 整合 Logstash 198 11.2.1 ELK 简介 198 11.2.2 输出 JSON 格式日志 198 11.3 整合 Zipkin 200 11.3.1 Zipkin 数据收集服务 200 11.3.2 项目集成 Zipkin 发送调用链数据 201 11.3.3 抽样采集数据 203 11.3.4 异步任务线程池定义 203 11.3.5 TracingFilter 204 11.3.6 监控本地方法 205 11.3.7 过滤不想跟踪的请求 206 11.3.8 用 RabbitMq 代替 Http 发送调用链数据 206 11.3.9 用 Elasticsearch 存储调用链数据 207 11.4 本章小结 208 第12章 微服务之间调用的安全认证 209 12.1 什么是 JWT 209 12.2 创建统一的认证服务 210 12.2.1 表结构 210 12.2.2 JWT工具类封装 210 12.2.3 认证接口 212 12.3 服务提供方进行调用认证 212 12.4 服务消费方申请 Token 214 12.5 Feign 调用前统一申请 Token 传递到调用的服务中 216 12.6 RestTemplate调用前统一申请 Token 传递到调用的服务中 217 12.7 Zuul 中传递 Token 到路由的服务中 218 12.8 本章小结 219 第13章 Spring Boot Admin 220 13.1 Spring Boot Admin 的使用方法 220 13.1.1 创建 Spring Boot Admin项目 220 13.1.2 将服务注册到 Spring Boot Admin 221 13.1.3 监控内容介绍 223 13.1.4 如何在 Admin 中查看各个服务的日志 225 13.2 开启认证 226 13.3 集成 Eureka 227 13.4 监控服务 228 13.4.1 邮件警报 228 13.4.2 自定义钉钉警报 229 13.5 本章小结 232 第14章 服务的API文档管理 233 14.1 Swagger 简介 233 14.2 集成 Swagger 管理 API 文档 234 14.2.1 项目中集成 Swagger 234 14.2.2 使用 Swagger 生成文档 234 14.2.3 在线测试接口 235 14.3 Swagger 注解 236 14.4 Eureka 控制台快速查看 Swagger 文档 240 14.5 请求认证 240 14.6 Zuul中聚合多个服务Swagger 241 14.7 本章小结 242 第四部分 高级篇 第15章 API 网关扩展 244 15.1 用户认证 244 15.1.1 动态管理不需要拦截的 API 请求 244 15.1.2 创建认证的用户服务 246 15.1.3 路由之前的认证 247 15.1.4 向下游微服务中传递认证之后的用户信息 248 15.1.5 内部服务间的用户信息传递 248 15.2 服务限流 250 15.2.1 限流算法 250 15.2.2 单节点限流 251 15.2.3 集群限流 255 15.2.4 具体服务限流 258 15.2.5 具体接口限流 258 15.3 服务降级 262 15.4 灰度发布 264 15.4.1 原理讲解 264 15.4.2 根据用户做灰度发布 265 15.4.3 根据 IP 做灰度发布 268 15.5 本章小结 268 第16章 微服务之缓存 269 16.1 Guava Cache 本地缓存 269 16.1.1 Guava Cache 简介 269 16.1.2 代码示例 270 16.1.3 回收策略 270 16.2 Redis 缓存 271 16.2.1 用 Redistemplate 操作 Redis 271 16.2.2 用 Repository 操作 Redis 272 16.2.3 Spring Cache 缓存数据 274 16.2.4 缓存异常处理 278 16.2.5 自定义缓存工具类 279 16.3 防止缓存穿透方案 282 16.3.1 什么是缓存穿透 282 16.3.2 缓存穿透的危害 282 16.3.3 解决方案 282 16.3.4 布隆过滤器介绍 283 16.3.5 代码示例 283 16.4 防止缓存雪崩方案 284 16.4.1 什么是缓存雪崩 284 16.4.2 缓存雪崩的危害 284 16.4.3 解决方案 284 16.4.4 代码示例 285 16.4.5 分布式锁方式 285 16.5 本章小结 286 第17章 微服务之存储 287 17.1 存储选型 287 17.2 Mongodb 288 17.2.1 集成 Spring Data Mongodb 288 17.2.2 添加数据操作 288 17.2.3 索引使用 290 17.2.4 修改数据操作 291 17.2.5 删除数据操作 293 17.2.6 查询数据操作 294 17.2.7 GridFS 操作 295 17.2.8 用 Repository方式操作数据 296 17.2.9 自增 ID 实现 300 17.2.10 批量更新扩展 303 17.3 Mysql 304 17.3.1 集成 Spring Jdbc-Template 304 17.3.2 JdbcTemplate 代码示例 305 17.3.3 封装 JdbcTemplate 操作 Mysql 更简单 305 17.3.4 扩展 JdbcTemplate 使用方式 306 17.3.5 常见问题 310 17.4 Elasticsearch 312 17.4.1 集成 Spring Data Elasticsearch 312 17.4.2 Repository 示例 312 17.4.3 ElasticsearchTemplate 示例 315 17.4.4 索引构建方式 318 17.5 本章小结 319 第18章 微服务之分布式事务解决方案 320 18.1 两阶段型 320 18.2 TCC 补偿型 321 18.3 最终一致性 321 18.3.1 原理讲解 321 18.3.2 创建可靠性消息服务 323 18.3.3 消息存储表设计 324 18.3.4 提供服务接口 325 18.3.5 创建消息发送系统 329 18.3.6 消费消息逻辑 332 18.3.7 消息管理系统 335 18.4 最大努力通知型事务 335 18.5 本章小结 335 第19章 分布式任务调度 336 19.1 Elastic-Job 336 19.1.1 Elastic-Job 介绍 336 19.1.2 任务调度目前存在的问题 336 19.1.3 为什么选择 Elastic-Job 337 19.2 快速集成 338 19.3 任务使用 339 19.3.1 简单任务 339 19.3.2 数据流任务 340 19.3.3 脚本任务 340 19.4 配置参数讲解 341 19.4.1 注册中心配置 341 19.4.2 作业配置 342 19.4.3 dataflow 独有配置 343 19.4.4 script独有配置 343 19.5 多节点并行调度 344 19.5.1 分片概念 344 19.5.2 任务节点分片策略 344 19.5.3 业务数据分片处理 345 19.6 事件追踪 347 19.7 扩展功能 349 19.7.1 自定义监听器 349 19.7.2 定义异常处理 349 19.8 运维平台 350 19.8.1 功能列表 350 19.8.2 部署运维平台 351 19.8.3 运维平台使用 351 19.9 使用经验分享 355 19.9.1 任务的划分和监控 355 19.9.2 任务的扩展性和节点数量 355 19.9.3 任务的重复执行 355 19.9.4 overwrite 覆盖问题 356 19.9.5 流水式任务 356 19.10 本章小结 357 第20章 分库分表解决方案 358 20.1 Sharding-JDBC 358 20.1.1 介绍 358 20.1.2 功能列表 359 20.1.3 相关概念 359 20.2 快速集成 360 20.3 读写分离实战 362 20.3.1 准备数据 362 20.3.2 配置读写分离 363 20.3.3 验证读从库 363 20.3.4 验证写主库 365 20.3.5 Hint 强制路由主库 366 20.4 分库分表实战 367 20.4.1 常用分片算法 367 20.4.2 使用分片算法 368 20.4.3 不分库只分表实战 368 20.4.4 既分库又分表实战 372 20.5 分布式主键 375 20.6 本章小结 377 第21章 最佳生产实践经验 378 21.1 开发环境和测试环境共用Eureka 378 21.2 Swagger和Actuator访问进行权限控制 379 21.3 Spring Boot Admin监控被保护的服务 380 21.4 Apollo配置中心简化版搭建分享 380 21.5 Apollo使用小经验 382 21.5.1 公共配置 382 21.5.2 账号权限 383 21.5.3 环境配置和项目配置 385 21.6 Apollo动态调整日志级别 385 21.7 Apollo存储加密 387 21.8 扩展Apollo支持存储加解密 390 21.9 Apollo结合Zuul实现动态路由 391 21.10 Apollo整合Archaius 393 21.11 Elastic-Job的Spring-Boot-Starter封装 394 21.12 Spring Boot中Mongodb多数据源封装 396 21.13 Zuul中对API进行加解密 398 21.14 本章小结 400 ---------------------------8052585 - Spring Cloud微服务架构进阶--------------------------- 前言 第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 Binder For RocketMQ306 10.4.2 多实例311 10.4.3 分区311 10.5 本章小结313 第11章 消息总线:Spring Cloud Bus314 11.1 基础应用314 11.1.1 配置服务器315 11.1.2 配置客户端316 11.1.3 结果验证316 11.2 源码解析318 11.2.1 事件的定义与事件监听器319 11.2.2 消息的订阅与发布326 11.2.3 控制端点328 11.3 应用进阶329 11.3.1 在自定义的包中注册事件329 11.3.2 自定义监听器330 11.3.3 事件的发起者331 11.4 本章小结332 第12章 认证与授权:Spring Cloud Security333 12.1 基础应用333 12.1.1 OAuth2简介334 12.1.2 JWT336 12.1.3 搭建授权服务器338 12.1.4 配置资源服务器341 12.1.5 访问受限资源344 12.2 整体架构346 12.3 源码解析348 12.3.1 安全上下文349 12.3.2 认证350 12.3.3 授权357 12.3.4 Spring Security中的过滤器与拦截器361 12.3.5 授权服务器372 12.3.6 资源服务器387 12.3.7 令牌中继机制394 12.4 进阶应用395 12.4.1 Spring Security定制395 12.4.2 OAuth2定制399 12.4.3 SSO单点登录403 12.5 本章小结406 第13章 服务链路追踪:Spring Cloud Sleuth407 13.1 链路监控组件简介407 13.2 基础应用410 13.2.1 特性411 13.2.2 项目准备411 13.2.3 Spring Cloud Sleuth独立实现414 13.2.4 集成Zipkin414 13.3 本章小结420 |