? ? ? ? 最近幾年,隨著DevOps和以Docker為主的容器技術的發展,云原生應用架構和微服務變得流行起來。云原生包含的內容很多,如DevOps、持續交付、微服務、敏捷等,本書關注的是其中的微服務。在大概三年前,我在互聯網上查找關于微服務落地的方案,搜索到了Spring社區推出的Spring Cloud項目,在那個時候就開始關注Spring Cloud,發現Spring Cloud基于Spring Boot,引入依賴后開箱即用,使用非常方便。當時Spring Cloud中的組件數量和成熟度遠不如現今,我剛接觸時,Spring Cloud的版本為Brixton的Milestone。后來我在項目中嘗試使用Spring Cloud,主要用了Spring Cloud Config和Spring Cloud Stream,使用過程中發現這兩個組件在易用性、功能性等各方面都令人滿意,后來慢慢在項目中鋪開使用。
?? ? ??在應用Spring Cloud的過程中,我見證了它的不斷完善和豐富。在其間也遇到了一些坑,通過源碼分析才解決了一些問題。Spring Cloud并沒有重復造輪子,這些組件有些是Spring Cloud的全新項目,如Spring Cloud Gateway、Spring Cloud Config等,還有很多是基于業界現成的開源組件,如Netflix的合集Netflix Ribbon、OpenFeign等。
?? ? ? ? 在2017年下半年的時候,我開始對每個組件進行梳理,深入到每個組件的實現原理和源碼。畢竟Spring Cloud中包含了眾多組件,斷斷續續花了半年時間把各個組件大概梳理了一遍,沒想到這些積累成為本書的寫作基礎。
? ? ? ? ?本書詳細介紹Spring Cloud及其在微服務架構中的應用。?全書共13章,第1章介紹微服務架構相關的基本概念;第2章介紹Spring Cloud中包含的組件以Spring Cloud約定的上下文;第3章介紹Spring Cloud的基礎:Spring Boot,包括如何構建一個Spring Boot服務、Spring Boot的配置文件和Actuator提供的監控管理端點;第4至第13章詳細講解Spring Cloud組件,包括:Eureka(服務注冊與發現)、OpenFeign(聲明式Restful客戶端)、Hystrix(斷路器)、Ribbon(客戶端負載均衡器)、Gateway(API網關)、Config(配置中心)、Stream(消息驅動)、Bus(消息總線)、Security(認證與授權)、Sleuth(服務鏈路追蹤)。本書為讀者揭開了Spring Cloud組件實現的技術內幕,并提供了進階應用的思路,可以作為使用Spring Cloud進行微服務架構實踐的參考書。
? ? ? ? 本書詳細講解了Spring Cloud中的重要組件,在介紹每個組件時,從基礎應用的案例著手,盡可能將這類組件的設計思路和方法講清楚,以幫助讀者加深理解,然后結合源碼講解組件的實現原理,最后還介紹了組件的進階功能與應用。本書適合具有一些基礎的Java開發人員,特別適合正在嘗試微服務實踐并想要深入了解Spring Cloud各個組件原理的開發人員、架構師。書中的很多案例都提供了源代碼,可以隨時下載,下載地址為:
github地址:https://github.com/Advanced-SpringCloud/cloud-book
gitee地址:https://gitee.com/Advanced-SpringCloud/cloud-book
? ? ? ? 本書最終由三個人共同完成:朱榮鑫、張天和黃迪璇。具體分工如下:第1、8、9、11、13章由朱榮鑫編寫,第2、5、7、10章由張天編寫,第3、4、6、12章由黃迪璇編寫,全書由朱榮鑫統稿。能夠完成本書需要感謝很多人,丁二玉老師在本書的撰寫過程中提供了很多內容組織方面的建議,花了很多休息時間幫助審稿,非常感謝丁老師的大力幫助;感謝筆者所在的公司,一個年輕而富有活力的公司,為我們提供了很好的平臺,并且積累了很多微服務架構實踐的經驗;感謝機械工業出版社的吳怡編輯及其他工作人員,為本書投入了很多精力。由于時間有限,書中難免存在一些問題,請讀者不吝賜教。
《Spring Cloud微服務架構進階》圖書已經在京東等網店上架。