Spring Cloud Alibaba 微服務架構實戰派(上下冊)

Spring Cloud Alibaba 微服務架構實戰派(上下冊)

《Spring Cloud Alibaba 微服務架構實戰派(上下冊)》是2021年11月電子工業出版社出版的圖書。

基本介紹

  • 中文名:Spring Cloud Alibaba 微服務架構實戰派(上下冊)
  • 譯者:胡弦
  • 題材:微服務
  • 出版時間:2021年11月
  • 出版社電子工業出版社
  • ISBN:9787121423130
  • 定價:236 元
  • 開本:16 開
內容簡介,圖書目錄,

內容簡介

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

相關詞條

熱門詞條

聯絡我們