SpringCloudAlibaba微服務原理與實戰

SpringCloudAlibaba微服務原理與實戰

《SpringCloudAlibaba微服務原理與實戰》是2020年4月電子工業出版社出版的圖書,作者是譚鋒(Mic)。

基本介紹

  • 書名:SpringCloudAlibaba微服務原理與實戰
  • 作者:譚鋒(Mic)
  • ISBN:9787121388248
  • 出版社:電子工業出版社
  • 出版時間:2020年4月
  • 頁數:408
  • 字數:588千字
  • 開本:16開
  • 版次:01-01
內容簡介,圖書目錄,

內容簡介

本書針對Spring Cloud Alibaba生態下的技術組件從套用到原理進行全面的分析,涉及的技術組件包括分散式服務治理Dubbo、服務配置和服務註冊中心Nacos、分散式限流與熔斷Sentinel、分散式訊息通信RocketMQ、分散式事務Seata及微服務網關Spring Cloud Gateway。由於Spring Cloud中所有的技術組件都是基於Spring Boot微服務框架來集成的,所以對於Spring Boot的核心原理也做了比較詳細的分析。本書中涉及的所有技術組件,筆者都採用“場景→需求→解決方案→套用→原理”高效技術學習模型進行設計,以便讓讀者知其然且知其所以然。在“原理”部分,筆者採用大量的源碼及圖形的方式來進行分析,幫助讀者達到對技術組件深度學習和理解的目標。

圖書目錄

目 錄
第1章 微服務的發展史1
1.1 從單體架構到分散式架構的演進2
1.1.1 單體架構2
1.1.2 集群及垂直化3
1.1.3 SOA4
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 Cloud10
2.1 什麼是Spring Cloud11
2.2 Spring Cloud版本簡介12
2.3 Spring Cloud規範下的實現13
2.4 Spring Cloud Netflix14
2.5 Spring Cloud Alibaba15
2.5.1 Spring Cloud Alibaba的優勢15
2.5.2 Spring Cloud Alibaba的版本16
第3章 Spring Cloud的核心之Spring Boot18
3.1 重新認識Spring Boot18
3.1.1 Spring IoC/DI19
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 EnableAutoConfiguration28
3.3.3 AutoConfigurationImportSelector29
3.3.4 自動裝配原理分析31
3.3.5 @Conditional條件裝配34
3.3.6 spring-autoconfigure-metadata37
3.4 手寫實現一個Starter38
3.4.1 Starter的命名規範38
3.4.2 實現基於Redis的Starter38
3.5 本章小結41
第4章 微服務架構下的服務治理42
4.1 如何理解Apache Dubbo43
4.2 Apache Dubbo實現遠程通信44
4.3 Spring Boot集成Apache Dubbo48
4.4 快速上手ZooKeeper52
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 Cloud60
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的核心之SPI71
4.8.3 無處不在的自適應擴展點81
4.8.4 Dubbo中的IoC和AOP85
4.8.5 Dubbo和Spring完美集成的原理89
4.9 本章小結95
第5章 服務註冊與發現97
5.1 什麼是Alibaba Nacos98
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 Discovery109
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 Server135
6.2.3 創建配置135
6.2.4 啟動服務並測試137
6.3 Spring Cloud Alibaba Nacos Config137
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和Group142
6.4 Nacos Config 實現原理解析145
6.4.1 配置的CRUD145
6.4.2 動態監聽之Pull Or Push146
6.5 Spring Cloud如何實現配置的載入148
6.5.1 PropertySourceBootstrapConfiguration148
6.5.2 PropertySourceLocator150
6.6 Nacos Config核心源碼解析152
6.6.1 NacosFactory.createConfigService154
6.6.2 NacosConfigService構造155
6.6.3 ClientWorker155
6.6.4 ClientWorker.checkConfigInfo157
6.6.5 LongPollingRunnable.run157
6.6.6 服務端長輪詢處理機制161
6.6.7 ClientLongPolling164
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 分散式限流框架Sentinel174
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 Cloud185
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 Dashboard200
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 分散式事務框架Seata243
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集成Seata258
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 Seata269
8.6.1 Spring Cloud項目準備270
8.6.2 集成Spring Cloud Alibaba Seata270
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 什麼是RocketMQ285
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 RocketMQ291
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而選擇NameServer316
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 Gateway354
10.1 API網關的作用355
10.1.1 統一認證鑒權356
10.1.2 灰度發布357
10.2 網關的本質及技術選型358
10.2.1 OpenResty358
10.2.2 Spring Cloud Zuul360
10.2.3 Spring Cloud Gateway361
10.3 Spring Cloud Gateway網關實戰361
10.3.1 spring-cloud-gateway-service361
10.3.2 spring-cloud-gateway-sample362
10.4 Spring Cloud Gateway原理分析363
10.5 Route Predicate Factories364
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 Factories367
10.6.1 GatewayFilter368
10.6.2 GlobalFilter372
10.7 自定義過濾器375
10.7.1 自定義GatewayFilter375
10.7.2 自定義GlobalFilter377
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

相關詞條

熱門詞條

聯絡我們