本書針對Spring Cloud Alibba生態下的技術組件從應用到原理進行全面的分析,涉及的技術組件包括分布式服務治理Dubbo、服務配置和服務注冊中心Nacos、分布式限流與熔斷Sentinel、分布式消息通信RocketMQ、分布式事務Seata及微服務網關Spring Cloud Gateway。由於Spring Cloud中所有的技術組件都是基於Spring Boot微服務框架來集成的,所以對於Spring Boot的核心原理也做了比較詳細的分析。
本書中涉及的所有技術組件,筆者都采用“場景→需求→解決方案→應用→原理”高效技術學習模型進行設計,以便讓讀者知其然且知其所以然。在“原理”部分,筆者采用大量的源碼及圖形的方式來進行分析,幫助讀者達到對技術組件深度學習和理解的目標。
譚鋒(Mic)
咕泡學院聯合創始人,擁有12年Java開發及架構經驗,主要關注微服務、高並發及容器化等技術領域,純粹的技術愛好者。
曾就職於平安支付、挖財,擔任業務架構師。2013年參與並主導Dubbo服務化落地項目。2015年負責公司內部Spring Boot集成Dubbo實現微服務化落地。2017年成立咕泡學院,目前主要負責咕泡學院Java架構進階課程的研發和設計。
★ 首次對Spring Cloud Alibba進行系統性介紹的書籍
★ 結合作者多年對互聯網技術及微服務架構的理解和實踐
★ 從入門示例、原理剖析和源碼分析等方面講解每個模塊
★ 對“實用主義者”,直接“show you the code”
★ 對“底層探究者”,會補充原理性內容,加深理解
★ 展示了微服務架構中涉及的核心技術原理和實現
★ 是學習微服務架構與分布式系統技術的必備書籍
“基礎篇”
微服務的發展史
微服務解決方案之Spring Cloud
Spring Cloud的核心之Spring Boot
“微服務實戰篇”
微服務架構下的服務治理(Dubbo、ZooKeeper、Dubbo Spring Cloud)
服務注冊與發現(Alibba Nacos、Dubbo)
Nacos實現統一配置管理
基於Sentinel的微服務限流及熔斷
分布式事務Seata
RocketMQ分布式消息通信
微服務網關之Spring Cloud Gateway
前 言
我看過市面上很多關於分布式和微服務的書,對於初學者或者想要進階的人來說,總感覺缺少一點什麼。我希望能夠寫一本書幫助更多的同學快速並且正確地成長。當然,促使我寫這本書的另外一個原因是我的職業生涯的轉折。
我從事Java開發工作接近10年時間,然後在職業教育這個“風口”下選擇以講師的身份創業,幸運的是創業過程還算順利,也有不少收獲。從程序員轉行到講師之後,我接觸了幾十萬名有不同背景和不同經驗的程序員,慢慢總結了一些課程設計的方法和授課的方法,最大的收獲是要針對不同層次的學員合理設計內容的鋪墊方式和技術的講解方式,從而達到事半功倍的效果。因此,我想基於這套方法論,結合目前比較主流的微服務架構,寫這樣一本書去幫助大家。
誠然,寫書和講課或者寫代碼是完全不一樣的。對於這本書中的每一句話、每一個字,我都仔細斟酌,抱著一種程序員對於代碼的極致追求的心態來寫這本書。實際上我們都知道程序是不可能完美的,希望讀者能夠抱著容忍程序中出現小bug的心態來原諒我文字表達的不完美。
我從2012年開始接觸Dubbo,當時公司正面臨大規模服務化之後的服務治理和服務監控等一系列問題,Dubbo的出現解決了很多快速發展起來的互聯網公司的技術難題。從那以後,我開始深入研究Dubbo的底層原理。
2015年,公司內部全面推動微服務架構,當時采用Spring Boot+Dubbo來構建微服務,基於微服務的治理生態和運維生態的逐步完善,我逐步認識到微服務帶來的價值。在Spring Cloud還沒有在國內大規模運用時,我們要解決服務注冊與發現、服務熔斷和降級、服務監控、服務路由等問題,采用的技術大部分是大公司或者Apache組織開源的。各種技術的拼湊和組裝給企業帶來了比較大的挑戰。
從2016年開始,Spring Cloud逐步在國內普及,它提供了微服務開發、服務治理、監控等一體化解決方案。有了這個生態,中小型互聯網公司要構建微服務,不需要再去找各種開源組件來集成。通過Spring Cloud可以輕松快速地構建微服務。
Spring Cloud服務治理的整個體系采用的是Netflix公司提供的開源組件,但是Netflix公司開源組件的活躍度不是很高,並且Netflix公司官方也聲明了對於很多組件逐步進入維護模式。所以Spring Cloud官方發布了聲明,Spring Cloud Netflix下的相關組件也會逐步進入維護模式(進入維護模式的意思就是從目前一直到以後一段時間Spring Cloud Netflix提供的服務和功能就這麼多了,不再開發新的組件和功能了)。同時Spring Cloud 官方也在積極孵化其他替代品,以滿足Spring Cloud 版本迭代的需求。
值得高興的是,2018年10月31日的凌晨,Spring Cloud Alibaba正式入駐Spring Cloud官方孵化器,並在Maven中央庫發布了第一個版本;2019年8月1日,在Alibaba倉庫發布了第一個畢業版本。
Spring Cloud Alibaba生態下的各個組件其實在國內很多公司很早之前就有使用,它們在服務治理方面比Spring Cloud Netflix更加強大,而且比較符合國內互聯網公司的業務特性,未來可期!
本書會從技術背景到基本使用再到深層次的設計思想和原理,對Spring Cloud Alibaba進行全面的分析,幫助大家全面構建Spring Cloud Alibaba技術體系。
本書特色
m 系統化的深度整理
Spring Cloud Alibaba在官網上有很多非常詳細的資料,但是這些資料太散,沒有系統性和深度。很多開發者需要花費大量的時間和精力去研究,很低效。本書系統分析了各個組件的使用方法和原理,對於初學者或者有一定經驗的開發者來說,都能提供非常大的幫助。
m 高效的技術學習模型
以往我們學習一個技術往往直接從應用著手,這種方式會使得讀者知其然而不知其所以然。本書對於Spring Cloud Alibaba生態下的技術組件采用高效的技術學習模型“場景→需求→解決方案→應用→原理”來展開,可以讓讀者更加了解技術背景,更好地理解技術的本質。
m 不僅有應用,還有核心原理
一個“不安分”的程序員,必然不會僅停留在技術的使用層次,技術實現原理的探索會給他帶來更多的驚喜。本書在介紹Spring Cloud Alibaba生態下各個技術組件的使用方法的同時,會剖析其實現原理,並且結合一些核心源碼分析設計方案的落地過程。這無疑給那些充滿好奇心的讀者帶來了“福利”。
m 大量圖形化設計,化繁為簡
對於復雜的技術原理,如果一味地用書面化的文字來表述,難免會增加理解成本,讀者可能要花大半天的時間去理解一句話。“書”對於開發者來說,是一個很好的學習渠道,理應化繁為簡,所以本書采用“動不動就畫圖”的方式,在書中穿插了大量的圖形,幫助讀者更好地掌握技術原理。
示例源碼
本書相關示例源碼可以在GitHub站點下載。
致謝
這本書筆者籌劃了很久,中間因為各種原因,一直拖到2019年的11月份才正式動筆,接著到一月份又趕上了疫情在家裡隔離,索性就利用隔離的這段時間沒日沒夜地把這本書寫完了,也算是圓了自己寫一本書的小夢想。
本書能夠順利出版,首先得感謝合伙人譚勇德、蔣孟枝的不斷督促,以及本書的責任編輯董英的鼓勵。其次,我要感謝我的妻子,是你的支持使我在寫書期間可以“兩耳不聞窗外事”,專注寫作,從而順利交稿。
我還要特別感謝我的好友湯陳,為本書提供了第7章的初稿。在整個寫作過程中我們對於技術問題的交流,為我的寫作提供了很多很好的思路。
第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 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 Cloud Alibaba 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 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而選擇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 Cloud Zuul 360
10.2.3 Spring Cloud Gateway. 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
推薦序1
近幾年來,我們大家都體會到了移動互聯網帶來的便利,企業在應對外部環境的快速變化時需要快速創新。無論是傳統企業還是互聯網企業,都需要不斷地對IT架構進行升級和改進,從而支持企業的數字化轉型。
說到微服務架構,想必大家都不陌生,尤其在互聯網應用中談到企業應用架構時,微服務架構是當前必聊的話題。微服務架構是從單體架構、垂直架構和SOA架構逐漸演變而來的。微服務架構這麼火熱是因為相比之前的應用架構它有許多優點,例如更快速、靈活,更能適應現在需求變更快速的大環境。
Spring Cloud Alibaba是一套完整的微服務架構解決方案,它為開發人員提供了一些工具來快速構建分布式系統,這對於中小型互聯網公司來說是一種“福音”,它能幫助企業在應對業務發展的同時,大大減少開發的成本。
Spring Cloud Alibaba於2019年8月開源以來,受到國內諸多企業和開發者的青睞,但在市面上缺少對其系統性的介紹和使用方法的相關內容。本書作者結合自己多年對互聯網技術及微服務架構的理解和實踐經驗,從入門示例、原理剖析和源碼分析等各個方面整理了每個模塊的知識。無論你是剛入門的Java開發者,還是從事開發工作多年的資深碼農,都會受益匪淺。
我是阿裡巴巴淘系技術部的一名技術小二,很高興能參與其中推廣公司的開源技術。希望本書能夠幫助大家快速理解和掌握微服務架構,通過技術的力量幫助企業快速成長。當然,我也希望更多的同學能夠加入阿裡巴巴。
湯陳
阿裡巴巴高級開發工程師
推薦序2
近年來,隨著互聯網技術的蓬勃發展,微服務理念逐漸深入人心。圍繞微服務的討論,一刻也未曾停止。而關於“Dubbo VS Spring Cloud”的技術選型,是其中一個“長盛不衰”的熱門話題。大家普遍認為,Dubbo是一款具備一定服務治理能力的RPC框架,而Spring Cloud是一整套微服務生態體系,雙方的比較並不在對等的維度上。
Dubbo由阿裡巴巴於2011年開源,很快發展成為國內最火爆的RPC框架,其經典程度毋庸置疑。Spring Cloud的出現,打開了微服務技術的新局面,全家桶式的解決方案,給廣大開發者帶來了極大的便利。Spring Cloud制定了集成標準,允許開源社區來提供組件的實現。Netflix公司在其中扮演了重要的角色,貢獻了REST RPC框架、服務注冊中心、服務網關、斷路器、客戶端負載均衡等多個服務治理組件。
2017年,阿裡巴巴“重啟”Dubbo的維護,不久就推出了支持Spring Boot的版本。而隨後Spring Cloud Alibaba的問世,不僅宣告了擁抱Spring Cloud標準,也與Netflix系的解決方案站在了對等競爭的位置。對於很多偏好Dubbo的國內開發者來說,面對補齊的微服務生態,無疑又多了一個堅定選擇它的理由。Spring Cloud Alibaba的優勢絕不僅僅在於“更服國內的水土”,其脫胎於內部中間件、在多年海量業務場景下打磨出的微服務生態組件,技術含量與工業成熟度在全球範圍內也是極具競爭力的。
本書作者譚鋒在微服務架構方面具備豐富的實戰經驗,並不斷將自己所學所想分享給職場小伙伴們,本書是他的實戰經驗總結,推薦給大家。另外,也歡迎大家來“PerfMa應用性能技術社區”交流。
李嘉鵬(你假笨/寒泉子)
PerfMa CEO
推薦序3
我曾帶領團隊從2016年開始調研Spring Cloud的整體生態,在了解到其完整的一體化解決方案後,決定將其引入公司做成一套全新的研發框架。由於我當時所在的是一家已經成立15年以上的老牌互聯網公司,其內部的研發架構、運維體系等都向這次轉型提出了“挑戰”。不同於從0開始搭建,我們對Spring Cloud的組件進行了大量的二次開發工作,目的是能更平滑地完成這次轉變。比如,在跨系統交互時,我們依然保留著一些通過api-gateway進行通信的方式;在微服務的運維部署上,公司內並存著容器化(既有Mesos也有Kubernetes)和虛擬機部署的方式等。在進行這些工作時,給我感觸最深的就是,單純地使用Spring Cloud整個生態的技術,已經需要一定的技術素養和研究成本。而在其基礎上進行二次開發,就會面臨參考資料不足、文檔和書籍匱乏等問題,不得不花上大量的精力去研究源碼。
用一句話形容程序員的進階,那就是“從說IT術語,變成說人話”,這裡當然有夸張的成分。我與Mic老師既是老同事,也是老朋友。我從他的身上,很明顯地感受到他已經從一位大牛架構師,變成了一位“不但能講人話”,還能“授人以漁”的優秀講師。本書的目錄編排、講述方式,深諳程序員所求。對“實用主義者”,它直接“show you the code”;對“底層探究者”,它又會進階地補充上一些原理性的內容,增強理解。相信無論你是新接觸Spring Cloud Alibaba,還是和我當時一樣正在團隊推進技術轉型,這本書都能為你提供很好的幫助,減小你“踩坑”的概率。
目前國內的開源項目越來越多地在開源社區發光發熱,Apache基金會的頂級項目中,也有越來越多的“中國制造”。感謝Mic老師這本“幹貨”教材對Spring Cloud Alibaba的推廣,為更多的IT開發者、IT研發團隊賦能增效。
顧冬煜
賦優信息技術CTO、滬江網前技術總監
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。