Spring Cloud Alibaba微服務原理與實戰

Spring Cloud Alibaba微服務原理與實戰

《Spring Cloud Alibaba微服務原理與實戰》針對Spring Cloud Alibaba生態下的技術組件從套用到原理進行全面的分析

基本介紹

  • 書名:Spring Cloud Alibaba微服務原理與實戰
  • 作者:譚鋒(Mic)
  • 類別:計算機
  • 出版社:電子工業出版社
  • 出版時間:2020年4月
  • 頁數:408 頁
  • 定價:106 元
  • 開本:16 開
  • ISBN:9787121388248
內容簡介,圖書目錄,作者簡介,

內容簡介

《Spring Cloud Alibaba微服務原理與實戰》中涉及的所有技術組件,筆者都採用“場景→需求→解決方案→套用→原理”高效技術學習模型進行設計。

圖書目錄

第1章 微服務的發展史  1
1.1 從單體架構到分散式架構的演進   2
1.1.1 單體架構 2
1.1.2 集群及垂直化 3
1.1.3 SOA  4
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 Cloud    10
2.1 什麼是Spring Cloud 11
2.2 Spring Cloud版本簡介   12
2.3 Spring Cloud規範下的實現   13
2.4 Spring Cloud Netflix   14
2.5 Spring Cloud Alibaba   15
2.5.1 Spring CloudAlibaba的優勢   15
2.5.2 Spring CloudAlibaba的版本   16
第3章 Spring Cloud的核心之Spring Boot 18
3.1 重新認識Spring Boot    18
3.1.1 Spring IoC/DI    19
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 EnableAutoConfiguration  28
3.3.3 AutoConfigurationImportSelector  29
3.3.4 自動裝配原理分析 31
3.3.5 @Conditional條件裝配 34
3.3.6 spring-autoconfigure-metadata    37
3.4 手寫實現一個Starter    38
3.4.1 Starter的命名規範    38
3.4.2 實現基於Redis的Starter  38
3.5 本章小結   41
第4章 微服務架構下的服務治理  42
4.1 如何理解Apache Dubbo   43
4.2 Apache Dubbo實現遠程通信   44
4.3 Spring Boot集成Apache Dubbo   48
4.4 快速上手ZooKeeper  52
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 Cloud 60
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的核心之SPI 71
4.8.3 無處不在的自適應擴展點   81
4.8.4 Dubbo中的IoC和AOP  85
4.8.5 Dubbo和Spring集成的原理 89
4.9 本章小結   95
第5章 服務註冊與發現  97
5.1 什麼是Alibaba Nacos    98
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 Discovery   109
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 Server 135
6.2.3 創建配置 135
6.2.4 啟動服務並測試   137
6.3 Spring Cloud Alibaba Nacos Config  137
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和Group 142
6.4 Nacos Config 實現原理解析  145
6.4.1 配置的CRUD   145
6.4.2 動態監聽之Pull OrPush   146
6.5 Spring Cloud如何實現配置的載入 148
6.5.1 PropertySourceBootstrapConfiguration 148
6.5.2 PropertySourceLocator    150
6.6 Nacos Config核心源碼解析   152
6.6.1 NacosFactory.createConfigService 154
6.6.2 NacosConfigService構造   155
6.6.3 ClientWorker 155
6.6.4 ClientWorker.checkConfigInfo 157
6.6.5 LongPollingRunnable.run  157
6.6.6 服務端長輪詢處理機制 161
6.6.7 ClientLongPolling    164
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 分散式限流框架Sentinel 174
7.3.1 Sentinel的特性   174
7.3.2 Sentinel的組成   175
7.3.3 SentinelDashboard的部署 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 Cloud 185
7.5.2 基於SentinelDashboard來實現流控配置 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 SentinelDashboard源碼修改   194
7.7.2 SentinelDashboard規則數據同步   199
7.8 Dubbo集成Sentinel實現限流 200
7.8.1 Dubbo服務接入Sentinel Dashboard 200
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 分散式事務框架Seata    243
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集成Seata 258
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 Seata 269
8.6.1 Spring Cloud項目準備 270
8.6.2 集成Spring CloudAlibaba Seata   270
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 什麼是RocketMQ 285
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 RocketMQ  291
9.2.1 Spring CloudAlibaba RocketMQ架構圖  293
9.2.2 Spring CloudStream訊息傳送流程  294
9.2.3 RocketMQBinder集成訊息傳送  299
9.2.4 RocketMQBinder集成訊息訂閱  303
9.2.5 Spring CloudStream訊息訂閱流程  308
9.3 RocketMQ集群管理   314
9.3.1 整體架構設計 314
9.3.2 基本概念 315
9.3.3 為什麼放棄ZooKeeper而選擇NameServer 316
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 Gateway   354
10.1 API網關的作用 355
10.1.1 統一認證鑒權    356
10.1.2 灰度發布    357
10.2 網關的本質及技術選型  358
10.2.1 OpenResty   358
10.2.2 Spring CloudZuul   360
10.2.3 Spring CloudGateway    361
10.3 Spring Cloud Gateway網關實戰  361
10.3.1 spring-cloud-gateway-service    361
10.3.2 spring-cloud-gateway-sample 362
10.4 Spring Cloud Gateway原理分析  363
10.5 Route Predicate Factories 364
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 Factories  367
10.6.1 GatewayFilter   368
10.6.2 GlobalFilter    372
10.7 自定義過濾器  375
10.7.1 自定義GatewayFilter 375
10.7.2 自定義GlobalFilter  377
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

作者簡介

譚鋒(Mic)
咕泡學院聯合創始人,擁有12年Java開發及架構經驗,主要關注微服務、高並發及容器化等技術領域,純粹的技術愛好者。
曾就職於平安支付、挖財,擔任業務架構師。2013年參與並主導Dubbo服務化落地項目。2015年負責公司內部Spring Boot集成Dubbo實現微服務化落地。2017年成立咕泡學院,主要負責咕泡學院Java架構進階課程的研發和設計。

相關詞條

熱門詞條

聯絡我們