注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计Spring Cloud Alibaba微服务原理与实战

Spring Cloud Alibaba微服务原理与实战

Spring Cloud Alibaba微服务原理与实战

定 价:¥106.00

作 者: 谭锋(Mic) 著
出版社: 电子工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787121388248 出版时间: 2020-04-01 包装: 平装
开本: 16开 页数: 408 字数:  

内容简介

  本书针对Spring Cloud Alibba生态下的技术组件从应用到原理进行全面的分析,涉及的技术组件包括分布式服务治理Dubbo、服务配置和服务注册中心Nacos、分布式限流与熔断Sentinel、分布式消息通信RocketMQ、分布式事务Seata及微服务网关Spring Cloud Gateway。由于Spring Cloud中所有的技术组件都是基于Spring Boot微服务框架来集成的,所以对于Spring Boot的核心原理也做了比较详细的分析。 本书中涉及的所有技术组件,笔者都采用“场景→需求→解决方案→应用→原理”高效技术学习模型进行设计,以便让读者知其然且知其所以然。在“原理”部分,笔者采用大量的源码及图形的方式来进行分析,帮助读者达到对技术组件深度学习和理解的目标。

作者简介

  谭锋(Mic) 咕泡学院联合创始人,拥有12年Java开发及架构经验,主要关注微服务、高并发及容器化等技术领域,纯粹的技术爱好者。 曾就职于平安支付、挖财,担任业务架构师。2013年参与并主导Dubbo服务化落地项目。2015年负责公司内部Spring Boot集成Dubbo实现微服务化落地。2017年成立咕泡学院,目前主要负责咕泡学院Java架构进阶课程的研发和设计。

图书目录

第1章 微服务的发展史... 1
1.1 从单体架构到分布式架构的演进... 2
1.1.1 单体架构... 2
1.1.2 集群及垂直化... 3
1.1.3 SOA.. 4
1.1.4 微服务架构... 5
1.2 微服务架构带来的挑战... 7
1.2.1 微服务架构的优点... 7
1.2.2 微服务架构面临的挑战... 7
1.3 如何实现微服务架构... 8
1.3.1 微服务架构图... 8
1.3.2 微服务架构下的技术挑战... 9
第2章 微服务解决方案之Spring Cloud.. 10
2.1 什么是Spring Cloud. 11
2.2 Spring Cloud版本简介... 12
2.3 Spring Cloud规范下的实现... 13
2.4 Spring Cloud Netflix. 14
2.5 Spring Cloud Alibaba. 15
2.5.1 Spring Cloud Alibaba的优势... 15
2.5.2 Spring Cloud Alibaba的版本... 16
第3章 Spring Cloud的核心之Spring Boot. 18
3.1 重新认识Spring Boot. 18
3.1.1 Spring IoC/DI 19
3.1.2 Bean装配方式的升级... 21
3.1.3 Spring Boot的价值... 23
3.2 快速构建Spring Boot应用... 25
3.3 Spring Boot自动装配的原理... 26
3.3.1 自动装配的实现... 27
3.3.2 EnableAutoConfiguration. 28
3.3.3 AutoConfigurationImportSelector 29
3.3.4 自动装配原理分析... 31
3.3.5 @Conditional条件装配... 34
3.3.6 spring-autoconfigure-metadata. 37
3.4 手写实现一个Starter. 38
3.4.1 Starter的命名规范... 38
3.4.2 实现基于Redis的Starter 38
3.5 本章小结... 41
第4章 微服务架构下的服务治理... 42
4.1 如何理解Apache Dubbo. 43
4.2 Apache Dubbo实现远程通信... 44
4.3 Spring Boot集成Apache Dubbo. 48
4.4 快速上手ZooKeeper. 52
4.4.1 ZooKeeper的安装... 52
4.4.2 ZooKeeper的数据结构... 52
4.4.3 ZooKeeper的特性... 53
4.4.4 Watcher机制... 54
4.4.5 常见应用场景分析... 54
4.5 Apache Dubbo集成ZooKeeper实现服务注册... 56
4.5.1 Apache Dubbo集成ZooKeeper实现服务注册的步骤... 57
4.5.2 ZooKeeper注册中心的实现原理... 59
4.6 实战Dubbo Spring Cloud. 60
4.6.1 实现Dubbo服务提供方... 60
4.6.2 实现Dubbo服务调用方... 63
4.7 Apache Dubbo的高级应用... 65
4.7.1 集群容错... 66
4.7.2 负载均衡... 67
4.7.3 服务降级... 68
4.7.4 主机绑定规则... 69
4.8 Apache Dubbo核心源码分析... 70
4.8.1 源码构建... 71
4.8.2 Dubbo的核心之SPI 71
4.8.3 无处不在的自适应扩展点... 81
4.8.4 Dubbo中的IoC和AOP. 85
4.8.5 Dubbo和Spring完美集成的原理... 89
4.9 本章小结... 95
第5章 服务注册与发现... 97
5.1 什么是Alibaba Nacos. 98
5.2 Nacos的基本使用... 99
5.2.1 Nacos的安装... 99
5.2.2 Nacos服务注册发现相关API说明... 100
5.2.3 Nacos集成Spring Boot实现服务注册与发现... 101
5.3 Nacos的高可用部署... 103
5.3.1 安装环境要求... 104
5.3.2 安装包及环境准备... 104
5.3.3 集群配置... 104
5.3.4 配置MySQL数据库... 105
5.3.5 启动Nacos服务... 105
5.4 Dubbo使用Nacos实现注册中心... 106
5.5 Spring Cloud Alibaba Nacos Discovery. 109
5.5.1 服务端开发... 109
5.5.2 消费端开发... 113
5.6 Nacos实现原理分析... 115
5.6.1 Nacos架构图... 116
5.6.2 注册中心的原理... 116
5.7 深入解读Nacos源码... 117
5.7.1 Spring Cloud什么时候完成服务注册... 117
5.7.2 NacosServiceRegistry的实现... 122
5.7.3 从源码层面分析Nacos服务注册的原理... 123
5.7.4 揭秘服务提供者地址查询... 127
5.7.5 分析Nacos服务地址动态感知原理... 130
5.8 本章小结... 132
第6章 Nacos实现统一配置管理... 133
6.1 Nacos配置中心简介... 134
6.2 Nacos集成Spring Boot实现统一配置管理... 134
6.2.1 项目准备... 134
6.2.2 启动Nacos Server 135
6.2.3 创建配置... 135
6.2.4 启动服务并测试... 137
6.3 Spring Cloud Alibaba Nacos Config. 137
6.3.1 Nacos Config的基本应用... 137
6.3.2 动态更新配置... 139
6.3.3 基于Data ID配置YAML的文件扩展名... 140
6.3.4 不同环境的配置切换... 141
6.3.5 Nacos Config自定义Namespace和Group. 142
6.4 Nacos Config 实现原理解析... 145
6.4.1 配置的CRUD.. 145
6.4.2 动态监听之Pull Or Push. 146
6.5 Spring Cloud如何实现配置的加载... 148
6.5.1 PropertySourceBootstrapConfiguration. 148
6.5.2 PropertySourceLocator 150
6.6 Nacos Config核心源码解析... 152
6.6.1 NacosFactory.createConfigService. 154
6.6.2 NacosConfigService构造... 155
6.6.3 ClientWorker 155
6.6.4 ClientWorker.checkConfigInfo. 157
6.6.5 LongPollingRunnable.run. 157
6.6.6 服务端长轮询处理机制... 161
6.6.7 ClientLongPolling. 164
6.7 本章小结... 167
第7章 基于Sentinel的微服务限流及熔断... 168
7.1 服务限流的作用及实现... 168
7.1.1 计数器算法... 169
7.1.2 滑动窗口算法... 170
7.1.3 令牌桶限流算法... 171
7.1.4 漏桶限流算法... 172
7.2 服务熔断与降级... 172
7.3 分布式限流框架Sentinel. 174
7.3.1 Sentinel的特性... 174
7.3.2 Sentinel的组成... 175
7.3.3 Sentinel Dashboard的部署... 175
7.4 Sentinel的基本应用... 176
7.4.1 Sentinel实现限流... 176
7.4.2 资源的定义方式... 178
7.4.3 Sentinel资源保护规则... 179
7.4.4 Sentinel实现服务熔断... 183
7.5 Spring Cloud集成Sentinel实践... 185
7.5.1 Sentinel接入Spring Cloud. 185
7.5.2 基于Sentinel Dashboard来实现流控配置... 187
7.5.3 自定义URL限流异常... 189
7.5.4 URL资源清洗... 189
7.6 Sentinel集成Nacos实现动态流控规则... 190
7.7 Sentinel Dashboard集成Nacos实现规则同步... 194
7.7.1 Sentinel Dashboard源码修改... 194
7.7.2 Sentinel Dashboard规则数据同步... 199
7.8 Dubbo集成Sentinel实现限流... 200
7.8.1 Dubbo服务接入Sentinel Dashboard. 200
7.8.2 Dubbo服务限流规则配置... 201
7.9 Sentinel热点限流... 203
7.9.1 热点参数限流的使用... 204
7.9.2 @SentinelResource热点参数限流... 205
7.9.3 热点参数规则说明... 206
7.10 Sentinel的工作原理... 206
7.11 Spring Cloud Sentinel工作原理分析... 207
7.12 Sentinel核心源码分析... 210
7.12.1 限流的源码实现... 210
7.12.2 实时指标数据统计... 216
7.12.3 服务降级的实现原理... 225
7.13 本章小结... 229
第8章 分布式事务... 230
8.1 分布式事务问题的理论模型... 231
8.1.1 X/Open分布式事务模型... 231
8.1.2 两阶段提交协议... 233
8.1.3 三阶段提交协议... 234
8.1.4 CAP定理和BASE理论... 236
8.2 分布式事务问题的常见解决方案... 238
8.2.1 TCC补偿型方案... 238
8.2.2 基于可靠性消息的最终一致性方案... 239
8.2.3 最大努力通知型... 242
8.3 分布式事务框架Seata. 243
8.3.1 AT模式... 243
8.3.2 Saga模式... 244
8.4 Seata的安装... 248
8.4.1 file存储模式... 248
8.4.2 db存储模式... 249
8.4.3 Seata服务端配置中心说明... 251
8.5 AT模式Dubbo集成Seata. 258
8.5.1 项目准备... 259
8.5.2 数据库准备... 259
8.5.3 核心方法说明... 260
8.5.4 项目启动顺序及访问... 264
8.5.5 整合Seata实现分布式事务... 265
8.6 Spring Cloud Alibaba Seata. 269
8.6.1 Spring Cloud项目准备... 270
8.6.2 集成Spring Cloud Alibaba Seata. 270
8.6.3 关于事务分组的说明... 275
8.7 Seata AT模式的实现原理... 276
8.7.1 AT模式第一阶段的实现原理... 277
8.7.2 AT模式第二阶段的原理分析... 279
8.7.3 关于事务的隔离性保证... 280
8.8 本章小结... 283
第9章 RocketMQ分布式消息通信... 285
9.1 什么是RocketMQ.. 285
9.1.1 RocketMQ的应用场景... 286
9.1.2 RocketMQ的安装... 286
9.1.3 RocketMQ如何发送消息... 287
9.1.4 RocketMQ如何消费消息... 289
9.2 Spring Cloud Alibaba RocketMQ.. 291
9.2.1 Spring Cloud Alibaba RocketMQ架构图... 293
9.2.2 Spring Cloud Stream消息发送流程... 294
9.2.3 RocketMQ Binder集成消息发送... 299
9.2.4 RocketMQ Binder集成消息订阅... 303
9.2.5 Spring Cloud Stream消息订阅流程... 308
9.3 RocketMQ集群管理... 314
9.3.1 整体架构设计... 314
9.3.2 基本概念... 315
9.3.3 为什么放弃ZooKeeper而选择NameServer 316
9.4 如何实现顺序消息... 318
9.4.1 顺序消息的使用场景... 318
9.4.2 如何发送和消费顺序消息... 319
9.4.3 顺序发送的技术原理... 321
9.4.4 普通发送的技术原理... 322
9.4.5 顺序消费的技术原理... 324
9.4.6 并发消费的技术原理... 325
9.4.7 消息的幂等性... 325
9.5 如何实现事务消息... 326
9.5.1 事务消息的使用场景... 326
9.5.2 如何发送事务消息... 327
9.5.3 事务消息的技术原理... 330
9.6 高性能设计... 331
9.6.1 顺序写盘... 333
9.6.2 消费队列设计... 334
9.6.3 消息跳跃读取... 336
9.6.4 数据零拷贝... 336
9.6.5 动态伸缩能力... 336
9.6.6 消息实时投递... 337
9.7 高可用设计... 338
9.7.1 消息发送重试机制... 339
9.7.2 故障规避机制... 340
9.7.3 同步刷盘与异步刷盘... 343
9.7.4 主从复制... 350
9.7.5 读写分离... 351
9.7.6 消费重试机制... 351
9.7.7 ACK机制... 352
9.7.8 Broker集群部署... 352
9.8 本章小结... 353
第10章 微服务网关之Spring Cloud Gateway. 354
10.1 API网关的作用... 355
10.1.1 统一认证鉴权... 356
10.1.2 灰度发布... 357
10.2 网关的本质及技术选型... 358
10.2.1 OpenResty. 358
10.2.2 Spring Cloud Zuul 360
10.2.3 Spring Cloud Gateway. 361
10.3 Spring Cloud Gateway网关实战... 361
10.3.1 spring-cloud-gateway-service. 361
10.3.2 spring-cloud-gateway-sample. 362
10.4 Spring Cloud Gateway原理分析... 363
10.5 Route Predicate Factories. 364
10.5.1 指定时间规则匹配路由... 365
10.5.2 Cookie匹配路由... 365
10.5.3 Header匹配路由... 366
10.5.4 Host匹配路由... 366
10.5.5 请求方法匹配路由... 367
10.5.6 请求路径匹配路由... 367
10.6 Gateway Filter Factories. 367
10.6.1 GatewayFilter 368
10.6.2 GlobalFilter 372
10.7 自定义过滤器... 375
10.7.1 自定义GatewayFilter 375
10.7.2 自定义GlobalFilter 377
10.8 Spring Cloud Gateway集成Nacos实现请求负载... 378
10.9 Spring Cloud Gateway集成Sentinel网关限流... 381
10.9.1 Route维度限流... 382
10.9.2 自定义API分组限流... 384
10.9.3 自定义异常... 386
10.9.4 网关流控控制台... 387
10.9.5 网关限流原理... 388
10.10 本章小结... 389

本目录推荐