SpringCloudAlibaba微服务架构实战派(上下册)
1星价
¥160.5
(6.8折)
2星价¥160.5
定价¥236.0
图文详情
- ISBN:9787121423130
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:964
- 出版时间:2021-11-01
- 条形码:9787121423130 ; 978-7-121-42313-0
本书特色
(1)技术新。采用目前的新版本(2.2. 5.RELEASE)来编写,相关技术也采用的是目前新的稳定版本。
(2)精心设计的主线:零基础入门,循序渐进,直至项目实战。
(3)不只介绍框架本身,而是微服务架构全栈技术(比如Seata、Skywalking、Redis、RocketMQ等),本书是“一站到底”的解决方案:读者只需从这里上车,中途无需转乘,读者需要什么,本书就提供什么,直达终点。
(4)绘制了大量的图,便于理解原理、架构、流程。
(5)实战性强。能让读者“动起来”,在实践中体会功能。
内容简介
本书覆盖了微服务架构的主要技术点,包括分布式服务治理、分布式配置管理、分布式流量防护、分布式事务处理、分布式消息处理、分布式网关、分布式链路追踪、分布式Job、分库分表、读写分离、分布式缓存、服务注册/订阅路由、全链路蓝绿发布和灰度发布。在讲解这些技术点,采用“是什么→怎么用→什么原理(源码解析)”的主线来讲解。为了方便读者在企业中落地Spring Cloud Alibaba项目,本书还包括几个相对完整的项目实战:全链路日志平台、中台架构、数据迁移平台、业务链路告警平台。本书的目标是:①让读者在动手中学习,而不是“看书时好像全明白了,一动手却发现什么都不会”;②读者可以掌握微服务全栈技术,而不仅仅是Spring Cloud Alibaba框架,对于相关的技术(Seata、RocketMQ),基本都是从零讲起,这样避免了读者为了学会微服务技术,得找Spring Cloud Alibaba的书、Seata的书、RocketMQ的书……本书是一站式解决方案。
目录
入门篇
第1章 进入Spring Cloud Alibaba的世界 /2
1.1 了解微服务架构 /2
1.1.1 单体架构与微服务架构的区别 /2
1.1.2 分布式架构与微服务架构的区别 /6
1.2 如何构建微服务架构 /8
1.2.1 构建微服务架构的目标 /8
1.2.2 构建微服务架构的关键点 /8
1.3 认识Spring Cloud Alibaba /11
1.4 学习Spring Cloud Alibaba的建议 /12
1.4.1 熟悉Spring Boot /12
1.4.2 熟悉Spring Cloud /13
1.4.3 Spring Cloud Alibaba的版本演进 /14
1.5 Spring Cloud Alibaba与Spring Cloud的关系 /15
1.6 搭建基础环境 /16
1.6.1 安装Maven /16
1.6.2 熟悉Git /18
第2章 熟用开发工具 /19
2.1 安装开发工具IntelliJ IDEA /19
2.2 【实例】用Spring Cloud Alibaba开发一个RESTful API服务 /20
2.3 了解Spring Framework官方开发工具STS /24
2.4 了解Spring Framework官方脚手架工具 /25
基础篇
第3章 Spring Cloud Alibaba基础实战 /28
3.1 Spring Cloud Alibaba“牛刀小试” /28
3.1.1 【实例】实现乐观锁 /28
3.1.2 【实例】实现多数据源 /32
3.1.3 【实例】实现SQL语句中表名的动态替换 /35
3.2 【实例】用Maven和Spring Cloud Alibaba实现多环境部署 /36
3.2.1 初始化 /37
3.2.2 多环境配置 /37
3.2.3 构建 /38
3.2.4 效果演示 /41
3.3 【实例】用“MyBatis-Plus + Spring Cloud Alibaba”实现多租户架构 /42
3.3.1 多租户的概念 /42
3.3.2 多租户的原理 /42
3.3.3 架构 /44
3.3.4 搭建及效果演示 /46
第4章 分布式服务治理——基于Nacos /48
4.1 认识分布式服务治理 /48
4.1.1 什么是分布式服务治理 /48
4.1.2 为什么需要分布式服务治理 /49
4.2 了解主流的注册中心 /50
4.2.1 Nacos /50
4.2.2 ZooKeeper /51
4.2.3 Consul /52
4.2.4 Sofa /53
4.2.5 Etcd /53
4.2.6 Eureka /54
4.2.7 对比Nacos、ZooKeeper、Sofa、Consul、Etcd和Euraka /54
4.3 将应用接入Nacos 注册中心 /55
4.3.1 【实例】用“Nacos Client + Spring Boot”接入 /55
4.3.2 【实例】用Spring Cloud Alibaba Discovery接入 /57
4.4 用“NacosNamingService类 + @EnableDiscoveryClient”实现服务的注册/订阅 /59
4.4.1 服务注册的原理 /59
4.4.2 服务订阅的原理 /69
4.4.3 【实例】通过服务幂等性设计验证服务的注册/订阅 /74
4.5 用“Ribbon + Nacos Client”实现服务发现的负载均衡 /82
4.5.1 为什么需要负载均衡 /82
4.5.2 【实例】用“Ribbon + Nacos Client”实现负载均衡 /83
4.6 用CP模式和AP模式来保持注册中心的数据一致性 /88
4.6.1 了解CAP理论 /88
4.6.2 了解Nacos的CP模式和AP模式 /89
4.6.3 了解Raft与Soft-Jraft /90
4.6.4 Nacos注册中心AP模式的数据一致性原理 /91
4.6.5 Nacos注册中心CP模式的数据一致性原理 /96
4.6.6 【实例】用持久化的服务实例来验证注册中心的数据一致性 /104
4.7 用缓存和文件来存储Nacos的元数据 /106
4.7.1 认识Nacos的元数据 /106
4.7.2 用缓存存储Nacos的元数据 /108
4.7.3 用文件存储Nacos的元数据 /110
4.7.4 【实例】用Spring Cloud Alibaba整合Nacos和Dubbo的元数据 /111
4.8 用Nacos Sync来实现应用服务的数据迁移 /114
4.8.1 为什么要进行应用服务的数据迁移 /115
4.8.2 如何完成应用服务的数据迁移 /116
4.8.3 【实例】将Eureka注册中心中的应用服务数据迁移到Nacos注册中心中 /117
第5章 分布式配置管理——基于Nacos /122
5.1 认识分布式配置管理 /122
5.1.1 什么是分布式配置管理 /122
5.1.2 为什么需要分布式配置管理 /123
5.2 了解主流的配置中心 /124
5.2.1 Nacos /124
5.2.2 Spring Cloud Config /126
5.2.3 Apollo /127
5.2.4 对比Nacos、Spring Cloud Config、Apollo和Disconf /127
5.3 将应用接入Nacos配置中心 /128
5.3.1 接入方式 /128
5.3.2 认识Nacos配置中心的配置信息模型 /128
5.3.3 了解NacosConfigService类 /129
5.3.4 【实例】用Nacos Client接入应用 /129
5.3.5 【实例】用Open API接入应用 /132
5.3.6 【实例】用Spring Cloud Alibaba Config接入应用 /134
5.4 用HTTP协议和gRPC框架实现通信渠道 /137
5.4.1 什么是gRPC /137
5.4.2 “用HTTP实现Nacos Config通信渠道”的原理 /137
5.4.3 “用'长轮询 + 注册监听器'机制将变更之后的配置信息同步到应用”的原理 /141
5.4.4 “用gRPC框架实现客户端与Nacos Config Server之间通信渠道”的原理 /148
5.4.5 【实例】用“采用gRPC通信渠道的Nacos Config”实现配置数据的动态更新 /151
5.5 用“Sofa-Jraft + Apache Derby”保证配置中心的数据一致性 /152
5.5.1 Nacos配置中心的数据一致性原理 /153
5.5.2 【实例】用“切换所连接的Nacos节点”验证数据一致性 /159
5.6 用数据库持久化配置中心的数据 /161
5.6.1 为什么需要持久化 /161
5.6.2 持久化的基础配置 /162
5.6.3 持久化的原理 /162
5.6.4 【实例】用“配置信息的灰度发布”验证持久化 /165
5.7 用“Spring Cloud Alibaba Config + Nacos Config”实现配置管理(公共配置、应用配置和扩展配置) /168
5.7.1 “按照优先级加载属性”的原理 /168
5.7.2 【实例】验证公共配置、应用配置和扩展配置的优先级顺序 /172
第6章 分布式流量防护——基于Sentinel /175
6.1 认识分布式流量防护 /175
6.1.1 什么是分布式流量防护 /175
6.1.2 为什么需要分布式流量防护 /177
6.2 认识Sentinel /179
6.3 将应用接入Sentinel /180
6.3.1 搭建Sentinel控制台 /180
6.3.2 【实例】用Sentinel Core手动地将应用接入Sentinel /181
6.3.3 【实例】用Spring Cloud Alibaba Sentinel将应用接入Sentinel /183
6.4 用HTTP或者Netty实现通信渠道 /184
6.4.1 认识NIO框架Netty /184
6.4.2 用SPI机制实现插件化通信渠道的原理 /184
6.4.3 “用插件类NettyHttpCommandCenter实现通信渠道”的原理 /189
6.4.4 “用SimpleHttpCommandCenter类实现通信渠道”的原理 /192
6.4.5 【实例】用Netty实现通信渠道,实现“从应用端到Sentinel控制台的流量控制规则推送” /196
6.5 用过滤器和拦截器实现组件的适配 /198
6.5.1 什么是过滤器和拦截器 /198
6.5.2 “Sentinel通过过滤器适配Dubbo”的原理 /199
6.5.3 “Sentinel通过拦截器适配Spring MVC”的原理 /203
6.5.4 【实例】将Spring Cloud Gateway应用接入Sentinel,管理流量控制规则 /206
6.6 用“流量控制”实现流量防护 /208
6.6.1 什么是流量控制 /208
6.6.2 槽位(Slot)的动态加载机制 /210
6.6.3 “加载应用运行的监控指标”的原理 /214
6.6.4 “用QPS/并发线程数实现流量控制”的原理 /216
6.6.5 “用调用关系实现流量控制”的原理 /222
6.6.6 【实例】通过控制台实时地修改QPS验证组件的流量防控 /224
6.7 用“熔断降级”实现流量防护 /227
6.7.1 什么是熔断降级 /227
6.7.2 “实现熔断降级”的原理 /228
6.7.3 【实例】用“模拟Dubbo服务故障”验证服务调用熔断降级的过程 /235
6.8 用“系统自适应保护”实现流量防护 /239
6.8.1 什么是“系统自适应保护” /239
6.8.2 “系统自适应保护”的原理 /240
6.8.3 【实例】通过调整应用服务的入口流量和负载,验证系统自适应保护 /243
6.9 用Nacos实现规则的动态配置和持久化 /247
6.9.1 为什么需要“规则的动态配置” /247
6.9.2 为什么需要“规则的持久化” /248
6.9.3 “规则的动态配置”的原理 /248
6.9.4 “规则的持久化”的原理 /255
6.9.5 【实例】将Dubbo应用接入Sentinel,实现规则的动态配置和持久化 /257
中级篇
第7章 分布式事务处理——基于Seata /264
7.1 认识分布式事务 /264
7.1.1 什么是分布式事务 /264
7.1.2 为什么需要分布式事务 /267
7.2 认识Seata /268
7.2.1 Seata的基础概念 /268
7.2.2 Seata的事务模式 /269
7.3 将应用接入Seata /274
7.3.1 搭建Seata Server的高可用环境 /274
7.3.2 【实例】使用seata-spring-boot-starter将应用接入Seata /279
7.3.3 【实例】使用Spring Cloud Alibaba 将应用接入Seata /282
7.4 用Netty实现客户端与服务器端之间的通信渠道 /284
7.4.1 “用Netty实现通信渠道的服务器端”的原理 /284
7.4.2 “用Netty实现通信渠道的客户端”的原理 /289
7.5 用拦截器和过滤器适配主流的RPC框架 /295
7.5.1 “用过滤器适配Dubbo”的原理 /295
7.5.2 “用拦截器适配gRPC”的原理 /297
7.6 用AT模式实现分布式事务 /299
7.6.1 “用数据源代理实现AT模式的零侵入应用”的原理 /299
7.6.2 “用全局锁实现AT模式第二阶段的写隔离”的原理 /304
7.6.3 【实例】搭建Seata的AT模式的环境,并验证AT模式的分布式事务
场景 /317
7.7 用TCC模式实现分布式事务 /327
7.7.1 用GlobalTransactionScanner类扫描客户端,开启TCC动态代理 /327
7.7.2 用拦截器TccActionInterceptor校验TCC事务 /330
7.7.3 【实例】搭建Seata的TCC模式的环境,并验证TCC模式的分布式事务场景 /332
7.8 用XA模式实现分布式事务 /343
7.8.1 “用数据源代理实现XA模式的零侵入应用”的原理 /343
7.8.2 用XACore类处理XA模式的事务请求 /350
7.8.3 【实例】搭建Seata的XA模式的客户端运行环境,并验证XA模式的
分布式事务回滚的效果 /353
7.9 用Saga模式实现分布式事务 /362
7.9.1 “用状态机实现Saga模式”的原理 /363
7.9.2 【实例】搭建Seata的Saga模式的客户端运行环境,并验证Saga模式的分布式事务场景 /367
第8章 分布式消息处理——基于RocketMQ /374
8.1 消息中间件概述 /374
8.1.1 什么是消息中间件 /374
8.1.2 为什么需要消息中间件 /375
8.1.3 认识RocketMQ /376
8.2 搭建RocketMQ的运行环境 /379
8.2.1 了解RocketMQ的安装包 /379
8.2.2 搭建单Master的单机环境 /380
8.2.3 搭建多Master的集群环境 /380
8.2.4 搭建单Master和单Slave的集群环境 /382
8.2.5 搭建Raft集群环境 /384
8.2.6 【实例】用RocketMQ Admin控制台管控RocketMQ /386
8.3 将应用接入RocketMQ /386
8.3.1 【实例】用rocketmq-spring-boot-starter框架将应用接入RocketMQ /387
8.3.2 【实例】用spring-cloud-starter-stream-rocketmq框架将应用接入
RocketMQ /389
8.4 用Netty实现RocketMQ的通信渠道 /392
8.4.1 用NettyRemotingClient类实现客户端的通信渠道 /393
8.4.2 用NettyRemotingServer类实现服务器端的通信渠道 /395
8.5 用“异步”“同步”和“*多发送一次”模式生产消息 /400
8.5.1 用“异步”模式生产消息的原理 /400
8.5.2 用“同步”模式生产消息的原理 /403
8.5.3 用“*多发送一次”模式生产消息的原理 /405
8.5.4 【实例】在Spring Cloud Alibaba项目中生产同步消息和异步消息 /407
8.6 用Push模式和Pull模式消费消息 /410
8.6.1 “用Push模式消费消息”的原理 /410
8.6.2 “用Pull模式消费消息”的原理 /421
8.6.3 【实例】生产者生产消息,消费者用Pull模式和Push模式消费消息 /431
8.7 用两阶段提交和定时回查事务状态实现事务消息 /437
8.7.1 什么是事务消息 /437
8.7.2 两阶段提交的原理 /437
8.7.3 定时回查事务状态的原理 /447
8.7.4 【实例】在Spring Cloud Aliaba项目中生产事务消息 /451
第9章 分布式网关——基于Spring Cloud Gateway /456
9.1 认识网关 /456
9.1.1 什么是网关 /456
9.1.2 为什么需要网关 /457
9.1.3 认识Spring Cloud Gateway /460
9.2 用Reactor Netty实现 Spring Cloud Gateway的通信渠道 /463
9.2.1 什么是Reactor Netty /463
9.2.2 “用过滤器代理网关请求”的原理 /466
9.3 用“路由规则定位器”(RouteDefinitionLocator)加载网关的路由规则 /473
9.3.1 “基于注册中心的路由规则定位器”的原理 /473
9.3.2 “基于内存的路由规则定位器”的原理 /477
9.3.3 “基于Redis缓存的路由规则定位器”的原理 /479
9.3.4 “基于属性文件的路由规则定位器”的原理 /480
9.3.5 【实例】用“基于注册中心和配置中心的路由规则定位器”在网关统一暴露API /481
9.4 用“Redis + Lua”进行网关API的限流 /487
9.4.1 “网关用Redis + Lua实现分布式限流”的原理 /487
9.4.2 【实例】将Spring Cloud Alibaba应用接入网关,用“Redis +Lua”进行限流 /494
高级篇
第10章 分布式链路追踪——基于Skywalking /500
10.1 认识分布式链路追踪 /500
10.1.1 什么是分布式链路追踪 /500
10.1.2 认识Skywalking /502
10.2 搭建Skywalking环境 /505
10.2.1 搭建单机环境 /505
10.2.2 搭建集群环境 /507
10.3 用Java Agent将Spring Cloud Alibaba应用接入Skywalking
10.3.1 什么是Java Agent /511
10.3.2 “Skywalking使用Java Agent零侵入应用”的原理 /513
10.3.3 【实例】将“基于Spring Cloud Alibaba的服务消费者和订阅者”接入Skywalking /517
10.4 用ModuleProvider和ModuleDefine将Skywalking的功能进行模块化设计
10.4.1 为什么需要模块化设计 /520
10.4.2 Skywalking模块化设计的原理 /522
10.4.3 Skywalking启动的原理 /529
10.5 用HTTP、gRPC和Kafka实现“应用与Skywalking之间的通信渠道”
10.5.1 “基于HTTP实现通信渠道”的原理 /532
10.5.2 “基于gRPC实现通信渠道”的原理 /535
10.5.3 “基于Kafka实现通信渠道”的原理 /541
10.5.4 【实例】搭建Kafka环境,并用异步通信渠道Kafka收集基于Spring Cloud Alibaba应用的运行链路指标数据 /549
10.6 用“注册中心”保证集群的高可用 /551
10.6.1 为什么需要注册中心 /551
10.6.2 “用注册中心保证集群高可用”的原理 /553
10.7 用“分布式配置中心”动态加载集群的配置信息 /558
10.7.1 为什么需要分布式配置中心 /558
10.7.2 “用配置中心动态加载集群配置信息”的原理 /559
10.7.3 【实例】用配置中心动态地修改告警规则 /565
10.8 用探针采集链路追踪数据 /569
10.8.1 什么是探针 /569
10.8.2 Dubbo探针的原理 /570
10.8.3 “Skywalking用探针来增强应用代码”的原理 /573
10.8.4 【实例】模拟Dubbo服务故障,用Dubbo探针采集链路追踪数据
10.9 用Elasticsearch存储链路追踪数据 /583
10.9.1 什么是Elasticsearch /583
10.9.2 存储链路追踪指标数据的原理 /584
10.9.3 【实例】将Skywalking集群接入Elasticsearch,并采集Spring Cloud Alibaba应用的链路追踪数据 /595
第11章 分布式Job——基于Elastic Job /598
11.1 认识分布式Job /598
11.1.1 为什么需要分布式Job /598
11.1.2 认识Elastic Job /602
11.2 将应用接入Elastic Job Lite /604
11.2.1 将应用接入Elastic Job Lite的3种模式 /605
11.2.2 搭建Elastic Job Lite的分布式环境 /607
11.2.3 【实例】用Spring Boot Starter将Spring Cloud Alibaba应用接入Elastic Job Lite /608
11.3 “实现Elastic Job Lite的本地Job和分布式Job”的原理 /611
11.3.1 用Quartz框架实现本地Job /611
11.3.2 用ZooKeeper框架实现分布式Job /621
11.3.3 【实例】在Elastic Job控制台中操控分布式Job /625
11.4 “用SPI将Job分片策略插件化”的原理 /627
11.4.1 用SPI工厂类JobShardingStrategyFactory加载分片策略 /628
11.4.2 用ShardingService类触发Job去执行分片策略 /631
11.4.3 【实例】将Spring Cloud Alibaba应用接入带有分片功能的分布式Job /633
11.5 “实现分布式Job的事件追踪”的原理 /636
11.5.1 用基于Guava的事件机制实现分布式Job的事件追踪 /636
11.5.2 用数据库持久化分布式Job的运行状态和日志 /643
11.5.3 【实例】将Spring Cloud Alibaba应用接入Elastic Job,并开启分布式Job的事件追踪 /652
第12章 分库分表和读写分离——基于ShardingSphere
12.1 认识ShardingSphere /655
12.1.1 什么是分布式数据库 /655
12.1.2 什么是ShardingSphere /658
12.2 将应用接入ShardingSphere JDBC /662
12.2.1 用四种模式将应用接入Shardingsphere JDBC /662
12.2.2 【实例】用Spring Boot将应用接入Shardingsphere JDBC并完成分库分表 /665
12.3 “用路由引擎实现分库分表”的原理 /681
12.3.1 绑定分库分表规则和数据库数据源,并初始化路由引擎 /682
12.3.2 拦截SQL语句,并启动路由引擎 /689
12.4 “读写分离”的原理 /703
12.4.1 读取应用配置文件中的数据库据源及读写分离规则 /703
12.4.2 使用ReplicaQuerySQLRouter类的createRouteContext()方法创建读写分离的路由上下文对象RouteContext /704
12.4.3 使用ReplicaQueryRuleSpringbootConfiguration类加载应用的]负载均衡器ReplicaLoadBalanceAlgorithm对象 /706
12.5 用Netty实现Shardingsphere Proxy的通信渠道 /708
12.5.1 “Shardingsphere Proxy通信渠道”的原理 /708
12.5.2 【实例】搭建通信渠道环境,将Spring Cloud Alibaba应用接入Shardingsphere Proxy /711
12.6 “使用SQL解析引擎实现Shardingsphere Proxy分库分表”的原理
12.6.1 为什么需要SQL解析引擎 /715
12.6.2 使用命令设计模式实现SQL语句的路由 /716
12.6.3 “使用MySQLComStmtPrepareExecutor类处理SQL请求”的原理
12.6.4 “使用MySQLComStmtExecuteExecutor类处理SQL请求”的原理
第13章 分布式缓存——基于Redis /741
13.1 认识缓存 /741
13.1.1 什么是本地缓存 /741
13.1.2 什么是分布式缓存 /743
13.1.3 什么是Redis /745
13.1.4 Redis的整体架构 /746
13.2 搭建Redis集群环境 /747
13.2.1 搭建主从环境 /747
13.2.2 搭建Sentinel集群环境 /751
13.2.3 搭建Codis集群环境 /756
13.2.4 搭建Redis Cluster集群环境 /769
13.3 将Spring Cloud Alibaba应用接入Redis /775
13.3.1 【实例】集成spring-boot-starter-data-redis,将Spring Cloud Alibaba应用接入Redis主从环境 /775
13.3.2 【实例】集成redisson-spring-boot-starter,将Spring Cloud Alibaba
应用接入Redis的Sentinel环境 /778
13.3.3 【实例】集成Jedis,将Spring Cloud Alibaba应用接入Redis的Codis集群环境 /782
13.3.4 【实例】集成Lettuce,将Spring Cloud Alibaba应用接入Redis Cluster集群环境 /785
13.4 “用分布式缓存Redis和Redisson框架实现分布式锁”的原理
13.4.1 什么是分布式锁 /789
13.4.2 初始化RedissonClient并连接Redis的服务器端 /791
13.4.3 “用Redisson框架的RedissonLock类实现分布式锁”的原理
13.4.4 【实例】在Spring Cloud Alibaba应用中,验证分布式锁的功能
第14章 服务注册/订阅路由、全链路蓝绿发布和灰度发布——基于Discovery
14.1 认识服务注册/订阅路由、蓝绿发布和灰度发布 /815
14.1.1 什么是服务注册路由、服务订阅路由 /816
14.1.2 什么是蓝绿发布 /816
14.1.3 什么是灰度发布 /817
14.1.4 认识微服务治理框架Discovery /819
14.2 “用插件机制来集成主流的注册中心和配置中心”的原理 /822
14.2.1 集成主流的注册中心 /822
14.2.2 集成主流的配置中心 /827
14.3 “用Open API和配置中心动态变修改规则”的原理 /828
14.3.1 用Open API动态修改规则 /829
14.3.2 用配置中心动态修改规则 /834
14.3.3 【实例】在Spring Cloud Alibaba应用中用Nacos配置中心变更规则,并验证规则动态变更的效果 /839
14.4 “用服务注册/订阅实现服务的路由”的原理 /842
14.4.1 用“服务注册的前置处理和注册监听器”实现基于服务注册的服务路由 /843
14.4.2 用“服务订阅前置处理 + 注册监听器”实现基于服务订阅的服务路由 /849
14.4.3 【实例】在Spring Cloud Alibaba应用中配置服务注册的路由规则
14.4.4 【实例】在Spring Cloud Alibaba应用中配置服务订阅的路由规则
14.5 “用路由过滤器实现全链路的蓝绿发布和灰度发布”的原理 /866
14.5.1 用路由过滤器适配 Spring Cloud Gateway网关 /866
14.5.2 用路由过滤器适配 RESTful API /869
14.5.3 【实例】在Spring Cloud Alibaba应用中配置全链路灰度发布的规则,并验证全链路灰度发布的效果 /871
14.5.4 【实例】在Spring Cloud Alibaba应用中配置全链路蓝绿发布的规则,并验证全链路蓝绿发布的效果 /879
项目实战篇
第15章 【项目】全链路日志平台——基于ELK、FileBeat、Kafka、Spring Cloud Alibaba及Skywalking /886
15.1 全链路日志平台整体架构 /886
15.2 搭建环境 /887
15.3 将Spring Cloud Alibaba应用接入全链路日志平台 /890
15.3.1 将微服务接入全链路日志平台 /890
15.3.2 使用全链路日志平台查询业务日志 /891
第16章 【项目】在企业中落地中台架构 /893
16.1 某跨境支付公司中台架构 /893
16.1.1 跨境支付中台架构 /893
16.1.2 跨境支付用户中台架构 /895
16.2 某娱乐直播公司中台架构 /896
16.2.1 泛娱乐直播中台架构 /896
16.2.2 直播用户中台架构 /899
16.3 用“服务双写和灰度发布”来实现中台服务上线过程中的“业务方零停机时间” /902
16.3.1 服务双写架构 /902
16.3.2 服务灰度发布架构 /903
第17章 【项目】异构数据迁移平台——基于DataX /905
17.1 搭建环境 /905
17.1.1 软件环境 /905
17.1.2 搭建MySQL的异构数据迁移环境 /906
17.2 搭建控制台 /909
17.2.1 构建部署包 /909
17.2.2 用部署包搭建后台管理系统datax-admin /910
17.2.3 用部署包搭建任务执行器datax-executor /911
17.2.4 使用可视化控制台执行MySQL异构数据迁移 /911
17.3 在Spring Cloud Alibaba应用中用DataX完成异构数据迁移
第18章 【项目】业务链路告警平台——基于Spring Cloud libaba、Nacos和Skywalking
18.1 告警平台的整体架构设计 /922
18.2 告警服务详细设计 /924
18.2.1 产品化部署设计 /925
18.2.2 Nacos服务健康告警设计 /926
18.2.3 Skywalking链路错误告警设计 /927
18.2.4 Skywalking的指标告警设计 /928
18.2.5 RocketMQ消息堆积告警设计 /928
18.3 分析告警服务的部分源码 /929
18.3.1 用分布式Job类NacosAlarmHealthJob实现Nacos服务健康告警
18.3.2 用分布式Job类SkywalkingErrorAlarmJob实现Skywalking链路错误告警
18.4 将电商微服务接入告警平台,验证告警平台的实时告警功能 /932
18.4.1 启动告警平台的软件环境 /932
18.4.2 在购买商品时,在下单过程中验证实时告警功能 /933
18.4.3 在购买商品时,在支付过程中验证实时告警功能 /936
展开全部
作者简介
胡弦
2012年毕业于杭州电子科技大学自动化学院,硕士研究生。
一名工作10年的IT老兵,曾就职于网易、连连支付等企业。
从Java工程师开始,一路“打怪升级”成为“独角兽”公司的高级技术专家、资深架构师和技术负责人,是一名技术狂热爱好者。
预估到手价 ×
预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。
确定