Spring Cloud Alibaba 微服務原理與實戰 版權信息
- ISBN:9787121388248
- 條形碼:9787121388248 ; 978-7-121-38824-8
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
Spring Cloud Alibaba 微服務原理與實戰 本書特色
本書針對Spring Cloud Alibaba生態下的技術組件從應用到原理進行全面的分析,涉及的技術組件包括分布式服務治理Dubbo、服務配置和服務注冊中心Nacos、分布式限流與熔斷Sentinel、分布式消息通信RocketMQ、分布式事務Seata及微服務網關Spring Cloud Gateway。由于Spring Cloud中所有的技術組件都是基于Spring Boot微服務框架來集成的,所以對于Spring Boot的核心原理也做了比較詳細的分析。
本書中涉及的所有技術組件,筆者都采用“場景→需求→解決方案→應用→原理”高效技術學習模型進行設計,以便讓讀者知其然且知其所以然。在“原理”部分,筆者采用大量的源碼及圖形的方式來進行分析,幫助讀者達到對技術組件深度學習和理解的目標。
Spring Cloud Alibaba 微服務原理與實戰 內容簡介
本書針對Spring Cloud Alibaba生態下的技術組件從應用到原理進行全面的分析, 涉及的技術組件包括分布式服務治理Dubbo、服務配置和服務注冊中心Nacos、分布式限流與熔斷Sentinel、分布式消息通信RocketMQ、分布式事務Seata及微服務網關Spring Cloud Gateway。由于Spring Cloud中所有的技術組件都是基于Spring Boot微服務框架來集成的, 所以對于Spring Boot的核心原理也做了比較詳細的分析。
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 Cloud Alibaba的優勢 15
2.5.2 Spring Cloud Alibaba的版本 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 Or Push 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 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 Cloud 185
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 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 Seat
展開全部
Spring Cloud Alibaba 微服務原理與實戰 相關資料
Spring Cloud Alibaba于2019年8月開源以來,受到了國內諸多企業和開發者的青睞,但是市面上缺少對其系統性介紹的相關圖書。本書作者結合其多年來對互聯網技術及微服務架構的理解和實踐經驗,從入門示例、原理剖析和源碼分析等各個方面整理了每個模塊的知識。無論你是剛入門的Java開發者,還是從事開發工作多年的資深碼農,本書都能讓你受益匪淺。
——湯陳 阿里巴巴高級開發工程師
Spring Cloud Alibaba的優勢絕不僅僅在于“更服國內的水土”,更在于其脫胎于內部中間件、在多年海量業務場景下打磨出的微服務生態組件,其技術含量與工業成熟度在全球范圍內也極具競爭力。本書作者譚鋒在微服務方面具備豐富的實戰經驗,并不斷將自己的所學所想分享給職場小伙伴們。本書是他的實戰經驗總結,值得閱讀。
——李嘉鵬(你假笨/寒泉子) PerfMa CEO
我與Mic老師既是老同事,也是老朋友。從他的身上,我很明顯地感受到他已經從一位大牛架構師,變成了一位“不但能講人話”、還能“授人以漁”的優秀講師。本書的目錄編排、講述方式,深諳程序員所求。對“實用主義者”,它直接“show you the code”;對“底層探究者”,它又會進階地補充一些原理性的內容,以加深理解。無論你是Spring Cloud Alibaba的初學者,還是正在團隊推動技術轉型的“老鳥”,這本書都能為你提供很好的幫助,減小你“踩坑”的概率。
——顧冬煜 賦優信息技術CTO,滬江網前技術總監
微服務已經在國內技術圈風靡多時,但能夠緊跟時代步伐“知其然又知其所以然”的人不多,能夠從“教”“學”“用”多個視角剖析和實踐的人則更少。作者既有十多年一線實踐經驗,又有在教育行業創業與教學的多年經歷,相信可以帶領大家領略到Spring Cloud Alibaba微服務體系的“精彩”與“拍案”。
——王福強 阿里巴巴資深架構師,Canal產品技術奠基人,《Spring揭秘》《Spring Boot揭秘》《深度思考揭秘》《極簡管理課》作者
作者深耕Java十余年,熟悉微服務和分布式系統中的常用技術,本書是他的經驗總結和匯總,循序漸進地向我們展示了微服務架構中涉及的核心技術原理和實現,是學習微服務架構與分布式系統技術的必備書籍。
——加多 《Java并發編程之美》作者,公眾號“技術原始積累”作者
Spring Cloud Alibaba 微服務原理與實戰 作者簡介
譚鋒(Mic)
咕泡學院聯合創始人,12年Java開發及架構經驗,主要關注微服務、高并發及容器化等技術領域,純粹的技術愛好者。
曾就職于平安支付,在挖財擔任業務架構。2013年參與并主導Dubbo服務化落地項目。2015年負責公司內部Spring Boot集成Dubbo實現微服務化落地。2017年成立咕泡學院,目前主要負責咕泡學院Java架構進階課程的研發和課程設計。