《Spring Cloud微服务和分布式系统实践》从企业的真实需求出发,理论结合实际,深入讲解Spring Cloud微服务和分布式系统的知识。书中既包括Spring Cloud微服务的各类常用组件的讲解,又包括分布式系统的常用知识的介绍。Spring Cloud组件方面主要讲解服务注册和服务发现(Eureka)、服务调用(Ribbon和OpenFeign)、断路器(Hystrix和Resilience4j)、网关(Zuul和Gateway)、配置(Config)、全链路追踪(Sleuth)、微服务的监控(Admin)等;分布式系统方面主要讲解分布式数据库、分布式缓存、会话和权限以及发号机制等。本书的实践部分通过Apache Thrift讲解了远程过程调用(RPC)在分布式系统中的应用,并且分析了处理高并发的一些常用方法,最后还通过一个简单的实例讲解了微服务系统的搭建。
本书适合想要学习Spring Cloud微服务、分布式系统开发的各类Java开发人员阅读,包括初学者和开发工程师。本书对架构师也有一定的帮助。
作者简介:
目录:
第一部分 概述和基础 1
第1章 分布式和微服务概述 3
1.1 互联网系统的特征 4
1.2 分布式系统概述 4
1.3 分布式系统的设计原则 10
1.4 微服务架构 12
1.5 Spring Cloud 15
1.6 微服务系统样例简介 17
第 2章 技术基础 19
2.1 Spring Boot 19
2.2 REST风格简介 29
第二部分 Spring Cloud微服务 41
第3章 服务治理——Eureka 43
3.1 服务治理中心 43
3.2 Eureka治理机制 54
3.3 Eureka配置 69
第4章 客户端负载均衡——Ribbon 73
4.1 负载均衡概述 73
4.2 初识Ribbon 74
4.3 Ribbon负载均衡器和策略 80
4.4 Ribbon服务实例清单维护 93
4.5 自定义Ribbon客户端 100
4.6 Ribbon使用实践 103
第5章 断路器——Hystrix 105
5.1 概述 105
5.2 入门实例 108
5.3 Hystrix工作原理 112
5.4 Hystrix实践 122
5.5 仪表盘 146
5.6 Hystrix属性配置 153
第6章 新断路器——Resilience4j 158
6.1 断路器(CircuitBreaker) 160
6.2 限速器(RateLimiter) 168
6.3 舱壁隔离(Bulkhead) 171
6.4 重试器(Retry) 173
6.5 缓存(Cache) 176
6.6 时间限制器(TimeLimiter) 178
6.7 组件混用 179
6.8 使用Spring Boot 2的配置方式 181
第7章 声明式调用——OpenFeign 185
7.1 OpenFeign的使用 186
7.2 配置Hystrix 199
7.3 使用Resilience4j调用OpenFeign接口 204
第8章 旧API网关——Zuul 207
8.1 什么是网关 208
8.2 Zuul入门实例 209
8.3 Zuul原理——过滤器 211
8.4 限流 220
8.5 动态路由 224
8.6 灰度发布(金丝雀发布) 230
8.7 使用Hystrix熔断 232
第9章 新网关——Spring CloudGateway 235
9.1 认识Gateway 236
9.2 断言(Predicate) 242
9.3 过滤器(Filter)概述 253
9.4 内置过滤器工厂 253
9.5 自定义过滤器 265
9.6 Gateway知识补充 273
第10章 配置——Spring Cloud Config 277
10.1 入门实例——使用Git仓库 277
10.2 使用其他方式实现配置 282
10.3 服务端的使用详解 286
第11章 Spring Cloud Sleuth全链路追踪 295
11.1 链路追踪的基本概念 295
11.2 Spring Cloud Sleuth和Zipkin 297
11.3 实例 298
11.4 持久化 308
第12章 微服务的监控——Spring Boot Admin 312
12.1 本章实例简介 313
12.2 URL注册方式 313
12.3 服务发现注册方式 316
12.4 使用Spring Security保护Admin服务端 319
第三部分 分布式技术 321
第13章 生成唯一的ID——发号机制 323
13.1 生成ID的常见办法 323
13.2 自定义发号机制 334
第14章 分布式数据库技术 337
14.1 基础知识 337
14.2 开发环境搭建 341
14.3 分片算法 350
14.4 分片中间件ShardingSphere 358
第15章 分布式数据库事务 364
15.1 强一致性事务 364
15.2 弱一致性事务 373
15.3 分布式事务应用的实践理论 383
第16章 分布式缓存——Redis 387
16.1 Redis的高可用 388
16.2 使用一致性哈希(ShardedJedis) 402
16.3 分布式缓存实践 403
第17章 分布式会话 407
17.1 分布式会话的几种方式 407
17.2 黏性会话 408
17.3 服务器会话复制 408
17.4 使用缓存(spring-session-data-redis) 409
17.5 持久化到数据库 411
第18章 分布式系统权限验证 412
18.1 Spring Security 412
18.2 自定义微服务权限控制 427
18.3 OAuth 2.0概述 441
18.4 Spring Cloud Security 445
第四部分 微服务系统实践 457
第19章 远程过程调用 459
19.1 远程过程调用 459
19.2 Thrift简介 462
19.3 RPC小结 469
第20章 微服务设计和高并发实践 470
20.1 微服务设计原则 470
20.2 高并发系统的一些优化经验 472
20.3 简易微服务系统实例 488
点击下载