描述
內容簡介
業界精選十項大型專案 擁有基礎知識後,想更了解專案開發? 如何進行微服務架構的轉型? 透過本書,讓你快速提升專案獨立執行能力
【本書內容】 隨著微服務概念的興起,如何快速實施微服務成了一個重要話題。在Java服務端領域,Spring Cloud微服務系統事實上已經成為整個Java後端架構的標準配備。如果你打算從事Java服務端開發,或你所在的公司正打算轉型微服務,那麼Spring Cloud是無論如何都躲不開的話題。 本書以專案實戰的形式來介紹Spring Cloud微服務系統。來自業界的真實案例,包括了建構Spring Cloud微服務所需的大部分內容,包括微服務專案架設、微服務閘道、熔斷限流、分散式任務排程、自動化CI/CD建構、Kubernetes容器化部署、微服務監控系統、分散式鏈路追蹤等。 無論讀者是否接觸過微服務開發,只要具備一定的Java開發基礎,都能透過本書快速掌握實際場景中的微服務開發技巧,並快速提升專案的實戰經驗。
【本書特點】 每個專案實例分為功能概述、系統設計、實際步驟。 讓讀者有效率地熟悉特定系統,並應用在實戰環境中。 本書內含十項專案: .使用者系統 .SSO授權認證系統 .車輛電子圍欄系統 .電子錢包系統 .支付系統 .A/B測試系統 .分散式任務排程系統 .微服務DevOps發佈系統 .微服務度量指標監控系統 .微服務分散式鏈路追蹤系統
【適合讀者群】 ‧希望快速提升專案經驗的Java初學者 ‧正在轉型微服務架構的傳統專案的工程師 ‧希望提升Spring Cloud微服務全端技術經驗的進階開發工程師 ‧對特定系統設計感興趣的產品經理及研發人員 |
作者
姜橋
擁有10年的互聯網系統研發、設計及架構經驗。曾任職於PP錢包、宜信、玖富等互聯網金融公司,後加入摩拜單車,主要負責摩拜支付、對帳等核心系統的設計研發工作。在摩拜任職期間,參與了摩拜單車整體軟體系統從單體架構到Spring Cloud微服務架構升級改造的全過程。目前任職於集度汽車,工作之餘專注於微服務架構領域相關的技術研究及分享,並定期發布至微信公眾號「無敵碼農」。感興趣的朋友可以關注公眾號與作者交流。 |
目錄
01 基礎
1.1 微服務的概念 1.2 Spring Boot框架基礎 1.3 開發一個Spring Boot應用 1.4 Spring Cloud微服務系統 1.5 本章小結
02 【實例】使用者系統 2.1 功能概述 2.2 系統設計 2.3 步驟1:架設Spring Boot應用的專案程式 2.4 步驟2:用Spring Boot實現業務邏輯 2.5 步驟3:將Spring Boot應用升級為Spring Cloud微服務 2.6 本章小結
03 【實例】SSO授權認證系統 3.1 功能概述 3.2 系統設計 3.3 步驟1:建構Spring Cloud授權認證微服務 3.4 步驟2:建構Spring Cloud資源微服務 3.5 步驟3:架設以Spring Cloud Gateway為基礎的服務閘道 3.6 步驟4:示範OAuth 2.0授權認證流程 3.7 本章小結
04 【實例】車輛電子圍欄系統 4.1 功能概述 4.2 系統設計 4.3 步驟1:建構Spring Cloud微服務專案程式 4.4 步驟2:實現微服務的業務邏輯 4.5 步驟3:示範電子圍欄微服務的簡單操作 4.6 步驟4:使用Spring Cloud ConfigServer設定中心 4.7 本章小結
05 【實例】電子錢包系統 5.1 功能概述 5.2 系統設計 5.3 步驟1:建構Spring Cloud微服務專案程式 5.4 步驟2:實現微服務的業務邏輯 5.5 步驟3:整合"Feign + Ribbon + Hystrix"實現微服務的「遠端通訊+負載呼叫+熔斷降級」 5.6 步驟4:以Vue.js為基礎開發電子錢包微服務的充值介面 5.7 步驟5:用Docker部署Spring Cloud微服務 5.8 本章小結
06 【實例】支付系統 6.1 功能概述 6.2 系統設計 6.3 步驟1:建構Spring Cloud 微服務專案程式 6.4 步驟2:實現以Redis 為基礎的分散式鎖 6.5 步驟3:實現微服務的業務邏輯 6.6 步驟4:連線「支付寶」通路 6.7 步驟5:進行Spring Cloud 微服務程式單元測試 6.8 本章小結
07 【實例】A/B測試系統 7.1 功能概述 7.2 系統設計 7.3 步驟1:建構Spring Cloud 微服務專案程式 7.4 步驟2:整合高性能本地快取Caffeine 7.5 步驟3:實現微服務的業務邏輯 7.6 步驟4:以Spring Boot Starter 方式為基礎撰寫「連線SDK」 7.7 步驟5:連線A/B 測試微服務,實現漸進式發佈 7.8 本章小結
08 【實例】分散式任務排程系統 8.1 功能概述 8.2 步驟1:建構分散式任務排程系統 8.3 步驟2:實現Spring Cloud 微服務分散式任務處理 8.4 本章複習
09 架設微服務DevOps發佈系統 9.1 CI/CD 概述 9.2 了解DevOps 發佈系統的設計流程 9.3 基礎知識1:GitLab 程式倉庫 9.4 基礎知識2:Docker 映像檔倉庫 9.5 基礎知識3:Kubernetes 容器編排技術 9.6 自動化發佈Spring Cloud 微服務 9.7 本章小結
10 架設微服務監控系統 10.1 認識監控系統 10.2 【實戰】建構微服務度量指標監控系統 10.3 【實戰】建構微服務分散式鏈路追蹤系統 10.4 本章小結 |
序
前言
【寫作背景】 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 姜橋 |