会员   密码 您忘记密码了吗?
1,567,638 本书已上架      购物流程 | 常见问题 | 联系我们 | 关于我们 | 用户协议

有店 App


当前分类

商品分类

浏览历史

当前位置: 首页 > 简体书 > SpringCloudAlibaba微服務架構實戰派(上下冊)
SpringCloudAlibaba微服務架構實戰派(上下冊)
上一张
下一张
prev next

SpringCloudAlibaba微服務架構實戰派(上下冊)

作者: 胡弦
出版社: 電子工業出版社
出版日期: 2021-12-21
商品库存: 点击查询库存
以上库存为海外库存属流动性。
可选择“空运”或“海运”配送,空运费每件商品是RM14。
配送时间:空运约8~12个工作天,海运约30个工作天。
(以上预计配送时间不包括出版社库存不足需调货及尚未出版的新品)
定价:   NT1416.00
市场价格: RM254.56
本店售价: RM226.56
购买数量:
collect Add to cart Add booking
详细介绍 商品属性 商品标记
內容簡介

本書覆蓋了微服務架構的主要技術點,包括分散式服務治理、分散式配置管理、分散式流量防護、分散式交易處理、分散式消息處理、分散式閘道、分散式鏈路追蹤、分散式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