最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發

姜橋 著

  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-1
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-2
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-3
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-4
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-5
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-6
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-7
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-8
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-9
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-10
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-11
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-12
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-13
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-14
  • 最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-15
最實用業界專案精選:用 Spring Boot 和 Spring Cloud 頂級開發-preview-1

買這商品的人也買了...

商品描述

業界精選十項大型專案
擁有基礎知識後,想更了解專案開發?
如何進行微服務架構的轉型?
透過本書,讓你快速提升專案獨立執行能力

 

【本書內容】

隨著微服務概念的興起,如何快速實施微服務成了一個重要話題。在Java服務端領域,Spring Cloud微服務系統事實上已經成為整個Java後端架構的標準配備。如果你打算從事Java服務端開發,或你所在的公司正打算轉型微服務,那麼Spring Cloud是無論如何都躲不開的話題。

本書以專案實戰的形式來介紹Spring Cloud微服務系統。來自業界的真實案例,包括了建構Spring Cloud微服務所需的大部分內容,包括微服務專案架設、微服務閘道、熔斷限流、分散式任務排程、自動化CI/CD建構、Kubernetes容器化部署、微服務監控系統、分散式鏈路追蹤等。

無論讀者是否接觸過微服務開發,只要具備一定的Java開發基礎,都能透過本書快速掌握實際場景中的微服務開發技巧,並快速提升專案的實戰經驗。

【本書特點】

每個專案實例分為功能概述、系統設計、實際步驟。
讓讀者有效率地熟悉特定系統,並應用在實戰環境中。
本書內含十項專案:
.使用者系統
.SSO授權認證系統
.車輛電子圍欄系統
.電子錢包系統
.支付系統
.A/B測試系統
.分散式任務排程系統
.微服務DevOps發佈系統
.微服務度量指標監控系統
.微服務分散式鏈路追蹤系統

【適合讀者群】
‧希望快速提升專案經驗的Java初學者 
‧正在轉型微服務架構的傳統專案的工程師 
‧希望提升Spring Cloud微服務全端技術經驗的進階開發工程師 
‧對特定系統設計感興趣的產品經理及研發人員
 

前言


【寫作背景】

  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
 

作者簡介

姜橋
擁有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 本章小結