书籍 Spring Cloud微服务和分布式系统实践的封面

Spring Cloud微服务和分布式系统实践PDF电子书下载

杨海玲责编;杨开振

购买点数

16

出版社

北京:人民邮电出版社

出版时间

2020

ISBN

标注页数

514 页

PDF页数

529 页

图书目录

第一部分 概述和基础 3

第1章 分布式和微服务概述 3

1.1互联网系统的特征 4

1.2分布式系统概述 4

1.2.1分布式的切分方法 5

1.2.2分布式系统所面临的问题 8

1.2.3分布式的衡量标准 9

1.3分布式系统的设计原则 10

1.3.1 CAP原则 10

1.3.2 BASE理论 11

1.4微服务架构 12

1.4.1概述 12

1.4.2微服务的风格 12

1.4.3微服务和分布式系统的关系 15

1.5 Spring Cloud 15

1.5.1 Spring Cloud的各个组件的简介 16

1.5.2 Spring Cloud版本说明 16

1.6微服务系统样例简介 17

第2章 技术基础 19

2.1 Spring Boot 19

2.1.1创建Spring Boot工程 19

2.1.2 Spring Boot开发简介 21

2.1.3多文件配置 25

2.1.4打包和运行 27

2.1.5 Spring Boot监控 28

2.1.6 Spring Boot小结 29

2.2 REST风格简介 29

2.2.1 REST风格概述 30

2.2.2 REST风格端点开发 31

2.2.3状态码和响应头 35

2.2.4客户端RestTempl ate的使用 38

第二部分 Spring Cloud微服务 43

第3章 服务治理——Eureka 43

3.1服务治理中心 43

3.1.1搭建Eureka服务治理中心 43

3.1.2服务发现 47

3.1.3多个服务治理中心实例 51

3.2 Eureka治理机制 54

3.2.1基础架构 54

3.2.2服务治理中心工作原理 57

3.2.3 Region和Zone 60

3.2.4 Eureka关键源码解读 62

3.2.5 Eureka使用注意点 69

3.3 Eureka配置 69

3.3.1客户端服务注册配置 70

3.3.2客户端服务实例配置 71

第4章 客户端负载均衡——Ribbon 73

4.1负载均衡概述 73

4.2初识Ribbon 74

4.2.1 Ribbon概述 74

4.2.2 Ribbon是如何实现负载均衡的 75

4.3 Ribbon负载均衡器和策略 80

4.3.1负载均衡器 80

4.3.2负载均衡策略 84

4.4 Ribbon服务实例清单维护 93

4.4.1获取服务实例清单 94

4.4.2更新服务实例清单 96

4.4.3服务实例的心跳监测 97

4.4.4 IPing接口 99

4.5自定义Ribbon客户端 100

4.5.1全局配置 101

4.5.2局部定义 101

4.6 Ribbon使用实践 103

第5章 断路器——Hystrix 105

5.1概述 105

5.1.1熔断的概念 105

5.1.2服务降级 107

5.1.3 Hystrix的功能简介 108

5.2入门实例 108

5.3 Hystrix工作原理 112

5.3.1 Hystrix命令 113

5.3.2缓存 114

5.3.3断路器 115

5.3.4隔离 119

5.4 Hystrix实践 122

5.4.1使用Hystrix命令 123

5.4.2请求缓存 129

5.4.3请求合并 137

5.4.4线程池划分 145

5.5仪表盘 146

5.5.1单体监控 147

5.5.2 Turbine聚合监控 151

5.6 Hystrix属性配置 153

5.6.1命令属性配置 154

5.6.2线程池属性配置 157

第6章 新断路器——Resilience4j 158

6.1断路器(CircuitBreaker) 160

6.1.1断路器配置和注册机 160

6.1.2断路器的状态 162

6.1.3使用断路器的实例 162

6.1.4异常处理 165

6.1.5拾遗 166

6.2限速器(RateLimiter) 168

6.2.1使用实践 168

6.2.2拾遗 170

6.3舱壁隔离(Bulkhead) 171

6.3.1使用舱壁隔离 171

6.3.2拾遗 173

6.4重试器(Retry) 173

6.4.1使用重试机制 173

6.4.2拾遗 175

6.5缓存(Cache) 176

6.5.1使用Resilience4j缓存 176

6.5.2拾遗 178

6.6时间限制器(TimeLimiter) 178

6.7组件混用 179

6.8使用Spring Boot 2的配置方式 181

6.8.1通过配置创建断路器 181

6.8.2通过配置创建限速器 183

第7章 声明式调用——OpenFeign 185

7.1 OpenFeign的使用 186

7.1.1入门实例 186

7.1.2常见的传参场景 188

7.1.3 OpenFeign客户端接口的继承 190

7.1.4 OpenFeign客户端的配置 191

7.1.5 OpenFeign的全局配置 197

7.2配置Hystrix 199

7.2.1使用服务降级 200

7.2.2 Hystrix中关于OpenFeign的其他配置 203

7.2.3使用建议 204

7.3使用Resilience4j调用OpenFeign接口 204

第8章 旧API网关——Zuul 207

8.1什么是网关 208

8.2 Zuul入门实例 209

8.3 Zuul原理——过滤器 211

8.3.1过滤器设计和责任链 211

8.3.2开发过滤器 214

8.3.3 Zuul自动装配的过滤器 218

8.4限流 220

8.4.1 Resilience4j限速器限流 220

8.4.2 spring-cloud-zuul-ratelimit限速 222

8.5动态路由 224

8.5.1动态路由原理 224

8.5.2动态路由实例 226

8.6灰度发布(金丝雀发布) 230

8.6.1标记微服务是否为灰色发布 230

8.6.2网关过滤 231

8.7使用Hystrix熔断 232

第9章 新网关——Spring Cloud Gateway 235

9.1认识Gateway 236

9.1.1入门实例 237

9.1.2 Gateway执行原理 238

9.2断言(Predicate) 242

9.2.1 Before路由断言工厂 242

9.2.2 After路由断言工厂 243

9.2.3 Between路由断言工厂 244

9.2.4 Cookie路由断言工厂 245

9.2.5 Header路由断言工厂 246

9.2.6 Host路由断言工厂 246

9.2.7 Method路由断言工厂 247

9.2.8 Path路由断言工厂 248

9.2.9 Query路由断言工厂 249

9.2.10 RemoteAddr路由断言工厂 250

9.2.11 Weight路由断言工厂 250

9.3过滤器(Filter)概述 253

9.4内置过滤器工厂 253

9.4.1 AddRequestHeader过滤器工厂 254

9.4.2 AddRequestParameter过滤器工厂 254

9.4.3 AddResponseHeader过滤器工厂 255

9.4.4 Retry过滤器工厂 256

9.4.5 Hystrix过滤器工厂 258

9.4.6 RequestRateLimiter过滤器工厂 259

9.4.7 StripPrefix过滤器工厂 262

9.4.8 RewritePath过滤器工厂 263

9.4.9 SetStatus过滤器工厂 264

9.4.10小结 265

9.5自定义过滤器 265

9.5.1自定义过滤器——使用Resilience4j限流 265

9.5.2全局过滤器——转发token 268

9.5.3过滤器的顺序 269

9.6 Gateway知识补充 273

9.6.1基于服务发现的路由 273

9.6.2度量和动态更新路由 274

第10章 配置——Spring Cloud Config 277

10.1入门实例——使用Git仓库 277

10.1.1服务端开发 278

10.1.2客户端开发 280

10.1.3验证配置 281

10.1.4小结 282

10.2使用其他方式实现配置 282

10.2.1使用本地文件 282

10.2.2使用SVN配置 283

10.2.3使用数据库 284

10.3服务端的使用详解 286

10.3.1敏感配置加密和解密 286

10.3.2查看配置文件和监控端点 289

10.3.3安全认证 291

10.3.4高可用的Config配置 293

第11章 Spring Cloud Sleuth全链路追踪 295

11.1链路追踪的基本概念 295

11.2 Spring Cloud Sleuth和Zipkin 297

11.3实例 298

11.3.1搭建Zipkin服务器 298

11.3.2搭建服务提供者和服务消费者 300

11.3.3搭建网关服务 303

11.3.4查看全链路追踪 304

11.3.5在链路中自定义样本标记属性 306

11.4持久化 308

11.4.1在数据库中存储链路样本 308

11.4.2在Elasticsearch中存储链路样本 309

第12章 微服务的监控——Spring Boot Admin 312

12.1本章实例简介 313

12.2 URL注册方式 313

12.2.1 Admin服务端开发 313

12.2.2 Admin客户端开发 314

12.2.3查看Admin服务端监测平台 315

12.3服务发现注册方式 316

12.4使用Spring Security保护Admin服务端 319

第三部分 分布式技术 323

第13章 生成唯一的ID——发号机制 323

13.1生成ID的常见办法 323

13.1.1使用UUID 324

13.1.2为什么不用UUID 324

13.1.3数据库自增长 325

13.1.4使用Redis生成ID 327

13.1.5时钟算法 329

13.1.6变异时钟算法——SnowFlake算法 331

13.1.7小结 334

13.2自定义发号机制 334

第14章 分布式数据库技术 337

14.1基础知识 337

14.1.1数据库的分表、分库和分区的概念 337

14.1.2 Spring多数据源支持 339

14.2开发环境搭建 341

14.2.1 SSM框架整合 342

14.2.2 配置多数据源 345

14.3分片算法 350

14.3.1哈希分片之求余算法 351

14.3.2一致性哈希算法 352

14.3.3热点分配法 357

14.4分片中间件ShardingSphere 358

14.4.1概述 358

14.4.2 ShardingSphere的重要概念 359

14.4.3 ShardingSphere的分片 360

14.4.4实例 361

14.4.5结束语 363

第15章 分布式数据库事务 364

15.1强一致性事务 364

15.1.1两阶段提交协议——XA协议 365

15.1.2三阶段提交协议 371

15.1.3为什么微服务不适合使用强一致性事务 372

15.2弱一致性事务 373

15.2.1本节样例模型和冲正交易的概念 374

15.2.2使用状态表 375

15.2.3使用可靠消息源——RabbitMQ 376

15.2.4提高尝试次数和幂等性 380

15.2.5 TCC补偿事务 381

15.2.6小结 383

15.3分布式事务应用的实践理论 383

15.3.1什么时候使用分布式事务 383

15.3.2数据修复思路 384

第16章 分布式缓存——Redis 387

16.1 Redis的高可用 388

16.1.1哨兵模式 389

16.1.2 Redis集群 394

16.2使用一致性哈希(ShardedJedis) 402

16.3分布式缓存实践 403

16.3.1大对象的缓存 403

16.3.2缓存穿透、并发和雪崩 404

16.3.3缓存实践的一些建议 406

第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.1.1简单使用Spring Security 413

18.1.2使用自定义用户验证 415

18.1.3使用缓存共享实现分布式权限 421

18.1.4跨站点请求伪造(CSRF)攻击 423

18.1.5使用自定义页面 425

18.2自定义微服务权限控制 427

18.2.1基础包开发 428

18.2.2开发Eureka客户端 432

18.2.3网关开发 434

18.2.4服务调用 438

18.3 OAuth 2.0概述 441

18.3.1 OAuth的概念和流程 441

18.3.2使用JWT进行安全认证 443

18.3.3 spring-security-oauth2 444

18.4 Spring Cloud Security 445

18.4.1构建认证服务器 446

18.4.2开发SSO客户端 450

18.4.3测试 453

第四部分 微服务系统实践 459

第19章 远程过程调用 459

19.1远程过程调用 459

19.1.1 REST风格服务调用性能测试 459

19.1.2 RPC入门 460

19.1.3 RPC和REST风格服务调用的对比 461

19.2 Thrift简介 462

19.2.1配置Thrift 462

19.2.2 Thrift的数据结构和服务接口 463

19.2.3开发业务逻辑 464

19.2.4启动Thrift服务器 465

19.2.5 Thrift客户端 466

19.2.6使用断路器保护服务调用 468

19.3 RPC小结 469

第20章 微服务设计和高并发实践 470

20.1微服务设计原则 470

20.1.1服务拆分方法 470

20.1.2微服务的设计原则 471

20.1.3微服务架构 471

20.2高并发系统的一些优化经验 472

20.2.1提高性能 473

20.2.2服务高可用 479

20.3简易微服务系统实例 488

20.3.1服务治理中心(ms-eureka ) 489

20.3.2搭建产品微服务(ms-product) 490

20.3.3网关微服务开发(ms-zuul ) 498

20.3.4资金微服务(ms-fund) 508

20.3.5服务实例监测平台(ms-admin) 510

20.3.6 Hystrix仪表盘(ms-dashboard) 511

20.3.7服务链路追踪(ms-sleuth) 512

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包