Spring Cloud Alibaba微服務開發零基礎入門到實操(視頻教學版)
孫衛琴
- 出版商: 清華大學
- 出版日期: 2024-11-01
- 定價: $539
- 售價: 8.5 折 $458
- 語言: 簡體中文
- ISBN: 7302674000
- ISBN-13: 9787302674009
-
相關分類:
Microservices 微服務、SOA、Java 相關技術
下單後立即進貨 (約4週~6週)
相關主題
商品描述
目錄大綱
目 錄
第1 章 微服務簡介 1
1.1微服務的概念與特徵 1
1.1.1微服務按照業務進行劃分 1
1.1.2微服務運行在獨立的進程中 2
1.1.3微服務採用簡單協議通信 2
1.1.4微服務採用統一的管理框架 3
1.2Spring Cloud框架概述 4
1.3Spring Cloud Alibaba框架概述 5
1.4各種軟件的版本匹配 6
1.5搭建微服務的開發和運行環境 7
1.5.1安裝Intellij IDEA 7
1.5.2為IDEA配置Maven 7
1.5.3安裝和啟動Nacos服務器 8
1.5.4訪問Nacos服務器的管理平臺 9
1.5.5查看Nacos服務器的日誌 10
1.6雲原生的概念 10
1.7 小結 11
第2 章 範例:helloapp項目 12
2.1提供者和消費者的通信及實現原理 12
2.2在IDEA中創建helloapp項目 13
2.3創建hello-provider模塊 14
2.3.1在IDEA中創建hello-provider 模塊 14
2.3.2在pom.xml文件中添加Spring Cloud Alibaba依賴 15
2.3.3創建控制器類
HelloProviderController 19
2.3.4在application.properties文件中配置微服務 20
2.3.5啟動hello-provider模塊 20
2.4創建hello-consumer模塊 21
2.4.1在IDEA中創建hello-consumer 模塊 21
2.4.2在啟動類中加入@EnableFeignClients註解 23
2.4.3創建HelloFeignService接口 23
2.4.4創建控制器類HelloConsumerController 24
2.4.5在application.properties文件中配置微服務 25
2.4.6啟動和訪問hello-consumer 模塊 25
2.4.7HelloFeignService接口的默認方法 26
2.5啟動微服務的多個實例 26
2.6LoadBalancer負載均衡器 29
2.7通過RestTemplate類訪問微服務 30
2.7.1使用LoadBalancerClient接口整合 31
2.7.2使用@LoadBalanced註解整合 32
2 .8 小結 33
第3 章 微服務的註冊與發現 34
3.1Nacos Discovery組件的配置屬性 35
3.1.1禁止註冊微服務 36
3.1.2Nacos Discovery組件的客戶端緩存 37
3.1.3微服務的分組和命名空間 37
3.2微服務的健康檢測 38
3.2.1微服務的臨時實例 39
3.2.2微服務的永久實例 39
3.3訪問DiscoveryClient接口 40
3.4通過Actuator監控Nacos Discovery組件的端點 42
3.5Nacos Discovery組件對微服務列表的監控 43
3.6 小結 44
第4 章 Nacos服務器配置中心 45
4.1在Nacos服務器中創建配置屬性 46
4.2在微服務中讀取配置屬性 47
4.2.1創建bootstrap.properties配置文件 47
4.2.2Nacos Config組件的配置屬性 48
4.2.3通過Environment對象讀取配置屬性 49
4.2.4通過@Value註解讀取配置屬性 50
4.2.5通過@ConfigurationProperties 註解讀取配置屬性 51
4.3配置單元的Data ID、分組和命名空間 52
4.4配置屬性的動態更新 54
4.5不同環境下配置屬性的切換 54
4.6擴展的配置單元 56
4.7監控Nacos Config組件的端點 58
4.8設置YAML格式的配置屬性 60
4.9配置屬性的持久化 60
4.10配置屬性的回滾 62
4.11 小結 64
第5 章 Nacos集群 65
5.1Nacos集群的Raft算法 65
5.1.1節點之間數據的同步 66
5.1.2節點的選舉機制 66
5.2搭建Nacos集群 67
5.2.1配置Nacos節點 68
5.2.2啟動Nacos節點 69
5.2.3避免Nacos節點之間的埠沖突 69
5.2.4Nacos集群的選舉 69
5.2.5通過微服務訪問Nacos集群 71
5.2.6Nacos集群的同步 71
5.3Nacos集群的AP和CP運行模式 72
5.4使用Nginx反向代理服務器 73
5.5通過Keepalived建立Nginx集群 76
5.6 小結 80
第6 章 遠程調用組件:OpenFeign 81
6.1優化設定所訪問的微服務的名字 81
6.2優化設定映射URL的根路徑 82
6.3輸出詳細日誌 83
6.4請求數據和響應數據的壓縮 84
6.5超時配置 85
6.6異常處理 87
6.6.1OpenFeign與Sentinel的整合 87
6.6.2創建回調類 87
6.6.3創建回調類和工廠類 89
6.7傳遞對象參數 91
6.7.1傳遞簡單對象 92
6.7.2傳遞復雜對象 93
6.8 小結 94
第7 章 遠程調用框架:Dubbo 95
7.1比較Dubbo和OpenFeign 95
7.2創建採用Dubbo框架的範例 96
7.2.1創建hello-provider模塊 96
7.2.2創建hello-consumer模塊... 100
7.2.3消費者遠程訪問提供者 101
7.3超時時間和重試次數設置 102
7.4異常處理 104
7.5傳遞復雜對象類型數據 104
7.6負載均衡 106
7.7Dubbo與Sentinel的整合 108
7.8提供者回調消費者 111
7.9消費者異步調用提供者的服務方法 115
7.10 小結 117
第8 章 流量控制組件:Sentinel 118
8.1微服務容錯的基本原理 118
8.2微服務與Sentinel的整合 121
8.2.1hello-consumer模塊與Sentinel的整合 121
8.2.2安裝Sentinel控制台 122
8.2.3在Sentinel控制臺中查看微服務的流量 123
8.3流控規則 124
8.3.1流控模式 125
8.3.2流控效果 127
8.4熔斷規則 128
8.4.1慢調用比例 129
8.4.2異常比例 129
8.4.3 異常數 130
8.5系統規則 131
8.6授權規則 132
8.7@SentinelResource註解 133
8.7.1熱點規則 133
8.7.2請求被拒絕的處理方式 135
8.7.3對異常的處理 136
8.8自定義處理BlockException異常的方式 138
8.9集群流控 140
8.9.1集群流控的原理 140
8.9.2Token Server的部署模式 141
8.9.3配置集群流控 142
8.10Sentinel規則的持久化 146
8.10.1流控規則的持久化 146
8.10.2熔斷規則的持久化 148
8.10.3系統規則的持久化 150
8.11 小結 151
第9 章 網關組件:GateWay 152
9.1GateWay簡介 152
9.2創建網關服務模塊 153
9.3GateWay與Nacos的整合 155
9.4 斷言 157
9.4.1內置的斷言工廠類 157
9.4.2自定義斷言工廠類 159
9.5 過 濾器 162
9.5.1局部內置過濾器 163
9.5.2默認過濾器 167
9.5.3全局內置過濾器 167
9.5.4自定義局部過濾器 168
9.5.5自定義全局過濾器 170
9.5.6SLF4J日誌工具 171
9.6GateWay與Sentinel的整合 172
9.6.1對路由限流 174
9.6.2對自定義的API入口限流 175
9.6.3同時對路由和API入口限流 178
9.7跨域配置 180
9.8超時配置 181
9.9通過Actuator監控網關 182
9.10網關集群 183
9.11 小結 185
第10 章 消息驅動框架:Stream 186
10.1消息中間件簡介 187
10.1.1消息中間件的運用場景 187
10.1.2消息中間件的缺點 189
10.1.3消息中間件產品 189
10.2RocketMQ簡介 190
10.2.1RocketMQ涉及的基本概念 191
10.2.2RocketMQ的消息收發模型 191
10.2.3安裝和啟動RocketMQ 192
10.2.4安裝和啟動RocketMQ控制台 193
10.3搭建RocketMQ集群 194
10.3.1搭建NameServer集群 195
10.3.2搭建BrokerServer集群 195
10.3.3多Master模式 197
10.3.4多Master多Slave的異步復制模式 198
10.3.5多Master多Slave的同步雙寫模式 199
10.4Spring Cloud Stream簡介 200
10.5在微服務中收發消息 200
10.5.1創建消息生產者 201
10.5.2創建消息消費者 202
10.5.3運行消息生產者和消息消費者 203
10.5.4收發Message類型的消息 203
10.6通過StreamBridge類發送消息 205
10.6.1StreamBridge類的用法 205
10.6.2用ChannelInterceptor攔截消息 207
10.7發送HTTP請求正文 208
10.8通過Function函數式接口收發消息 209
10.9響應式收發消息 210
10.10多輸入通道和輸出通道 211
10.11批量消費消息 213
10.12批量生產消息 213
10.13處理錯誤 214
10.13.1清除失敗消息 214
10.13.2把失敗消息發送到DLQ 214
10.13.3嘗試重新消費失敗消息... 215 10.14 消費者分組和分區 217
10.15消息正文的類型轉換 219
10.16通過Actuator監控Stream 221
10.17 小結 222
第11 章 鏈路追蹤組件:SkyWalking 223
11.1SkyWalking簡介 223
11.2鏈路追蹤軟件 224
11.3安裝和運行SkyWalking 225
11.4在微服務中安置探針 227
11.4.1查看拓撲圖 229
11.4.2追蹤鏈路 229
11.4.3查看監控數據 230
11.4.4性能分析 230
11.5採集日誌 232
11.6自定義鏈路追蹤 235
11.7忽略端點 237
11.8 告警 238
11.8.1編寫滿足告警規則的方法 240
11.8.2創建處理告警的webhook 241
11.8.3測試告警 243
11.9整合Elasticsearch數據庫 245
11.10整合MySQL數據庫 247
11.11通過Nacos建立SkyWalking集群 247
11.12 小結 250
第12 章 分佈式事務管理框架:Seata 251
12.1分佈式事務概述 251
12.2Seata簡介 253
12.3Seata的事務模式 254
12.3.1AT 模式 255
12.3.2TCC 模式 261
12.3.3Saga 模式 262
12.3.4XA 模式 262
12.4安裝和運行Seata Server 263
12.5創建AT模式下的範例 265
12.5.1創建Seata Server的MySQL 存儲源 266
12.5.2處理分佈式事務的微服務的架構 267
12.5.3創建order-service微服務 268
12.5.4聲明全局事務和分支事務 276
12.5.5演示全局事務的提交和撤銷 276
12.6搭建與Nacos整合的Seata Server集群 278
12.6.1在MySQL中創建seata數據庫和表 279
12.6.2在Nacos配置中心配置Seata Server 279
12.6.3在Seata Server的配置文件中配置Nacos 280
12.6.4在微服務中配置Seata 282
12.6.5運行和訪問Seata Server集群 282
12.7事務組與Seata Server集群的映射 283
12.8 小結 284
第13 章 分庫分表中間件:ShardingSphere 285
13.1分庫分表概述 286
13.2ShardingSphere簡介 288
13.2.1Sharding-JDBC簡介 289
13.2.2Sharding-Proxy簡介 290
13.3ShardingSphere的核心概念 290
13.3.1與表相關的概念 290
13.3.2與分片相關的概念 291
13.4ShardingSphere的工作流程 293
13.5ShardingSphere的SQL規範 294
13.6運用Sharding-JDBC的範例 296
13.6.1加入Sharding-JDBC等的依賴 296
13.6.2創建拆分後的訂單表 297
13.6.3配置Sharding-JDBC 和MyBatis 298
13.6.4創建Order實體類 299
13.6.5創建訪問數據的OrderDao接口 299
13.6.6創建OrderService類 300
13.6.7創建OrderController類 300
13.6.8運行演示SQL路由的範例 301
13.6.9把訂單表拆分到兩個數據庫中 301
13.6.10配置綁定表 303
13.6.11配置廣播表 304
13.6.12主從數據庫和讀寫分離 305
13.7Sharding-Proxy簡介 307
13.7.1安裝和配置Sharding-Proxy 308
13.7.2在微服務中訪問Sharding-Proxy 311
13.7.3配置讀寫分離 312
13.7.4配置數據加密 314
13.7.5配置影子數據源 316
13.8 小結 318
第14 章 分佈式緩存數據庫:Redis 319
14.1Redis簡介 319
14.2安裝和啟動Redis 320
14.3在微服務中訪問Redis 321
14.4Redis數據類型 322
14.4.1讀寫list類型數據 323
14.4.2讀寫set類型數據 324
14.4.3讀寫zset類型數據 326
14.4.4讀寫hash類型數據 327
14.4.5序列化Java對象 328
14.5Redis集群 329
14.5.1主從模式 329
14.5.2哨兵模式 330
14.5.3集群模式 331
14.5.4搭建Redis集群 332
14.6在微服務中訪問Redis集群 334
14.7 小結 334
第15 章 分佈式任務調度框架:XXL-JOB 336
15.1安裝和運行XXL-JOB 337
15.1.1創建XXL-JOB的數據庫 337
15.1.2配置XXL-JOB調度中心 338
15.1.3運行和訪問XXL-JOB調度 中心 339
15.1.4配置XXL-JOB執行器 340
15.1.5運行XXL-JOB執行器 342
15.2創建和執行GLUE模式的任務 342
15.3創建和執行BEAN模式的任務 346
15.3.1任務的初始化和銷毀 347
15.3.2帶參數的任務 348
15.4執行器集群和分片執行任務 352
15.5搭建調度中心的集群 354
15.6 小結 356