前言
【寫作背景】
Spring Cloud微服務系統在中文使用地區真正流行是在2017年左右,那時我所在的公司——摩拜單車風頭正盛,後端系統也剛完成了從早期單體應用到Spring Cloud微服務架構的轉型。這次大規模的微服務架構實踐中,我深刻感受到微服務架構給高速發展中的摩拜單車,在後端架構、系統負載、開發方式、組織架構等方面所帶來的好處。
於是,我便有了將這些實踐經驗透過文章輸出的想法,然而寫作過程並非一帆風順。因為工作繁忙,所以本書的寫作從2019年4月整整持續了兩年多的時間。技術更新是非常快的,這樣的寫作時長存在著技術落後的風險,不過幸好目前Spring Cloud微服務系統依然是主流,雖然新一代微服務架構Service Mesh也在迅速發展,但短期內並不會完全取代Spring Cloud。
雖然寫作過程進展不快,但這也正好有了更多的思考時間,因此書稿內容也都處於持續最佳化中,根據技術的變化進行同步。所以,本書在技術上不僅不落後,反而具有一定的前瞻性。
【本書特色】
本書以專案實例的形式來展示Spring Cloud 微服務生命週期所涉及的技術,具有以下特點。
(1)精選業界普遍採用的技術方案進行詳細介紹。
雖然Spring Cloud微服務的技術生態非常豐富,但在實際應用中,並不是所有技術都是必需的。所以,本書並沒有像其他某些Spring Cloud圖書那樣囫圇式地將各個技術元件都介紹一遍,而是以目前網際網路業界普遍採用的技術方案進行詳細介紹。
舉例來說,關於註冊中心的選擇,大部分網際網路公司並不會直接採用Eureka,而是會選擇性能更高、支援微服務數量規模更大的方案,如Consul或Nacos等。而對於像微服務的分散式鏈路追蹤方案,一般也不會選擇Spring Cloud Sleuth,而是選擇更流行的SkyWalking方案等。
(2)包括Spring Cloud微服務系統的絕大部分內容。
本書包括建構Spring Cloud微服務的絕大部分內容——包括微服務專案架設、微服務閘道、熔斷限流、分散式任務排程、自動化CI/CD建構、Kubernetes容器化部署、微服務監控系統、分散式鏈路追蹤等。
(3)循序漸進,實戰性強。
本書對於微服務技術並不是枯燥地敘述,而是根據每個專案實例的特點,「從原理到實踐」一步步地教學,並且每章的實例都可以獨立學習。書中實例都提供了完整的原始程式,且精確到具體的套件路徑。
(4)實例具有強大實用參考性。
本書所有實例都是作者從多年的工作實踐中整理出來的真實專案,使用者系統、SSO授權系統、車輛電子圍欄系統、電子錢包系統、支付系統、A/B測試系統等,都是目前網際網路業務系統中真實存在的。本書列出了這些系統的詳細設計方案,以及具體程式實現。
(5)程式工整,注重程式設計思想的提煉。
本書實例中,注重程式設計規範及軟體分層架構。透過學習本書,讀者不僅能夠快速掌握Spring Cloud微服務開發技術,還能感受到良好的程式設計思想,從而在潛移默化中培養良好的程式設計習慣,提升程式設計水準。
(6)技術前瞻,緊接發展潮流。
本書所相關的技術具有一定的前瞻性,特別是最後兩章所涉及的Kubernetes容器編排、監控系統及分散式鏈路追蹤等內容,都是當前流行及今後會流行的技術,也是下一代微服務架構Service Mesh所依賴的平台基礎。
由於筆者能力有限,錯漏之處在所難免,歡迎讀者批評、指正。
筆者的電子郵件為1468325120@qq.com
姜橋