1. 程式人生 > 實用技巧 >阿里技術官16個月心血終成佳話,微服務先驅,重學SpringCloud

阿里技術官16個月心血終成佳話,微服務先驅,重學SpringCloud

如果你沒聽說過微服務,也沒有聽說過Spring Cloud,或者你正在學習或嘗試使用SpringCloud去落地微服務架構,那麼本文會非常適合你。因為本文更加偏實戰,文中所講是一套可落地的解決方案。不管你是初學者、開發人員還是架構師,只要你想使用Spring Cloud去落地微服務架構,就可以閱讀並學習本文。

那麼今天就從目錄、主要內容、總結三個部分來給大家進行微服務SpringCloud的擴充套件學習

目錄

主要內容

本文共分成了25章,按照“核心元件→進階實戰→解決方案”的結構將內容從邏輯上劃分為三個部分,具體如下:

第1~10章為核心元件部分,主要介紹Spring Cloud的核心元件。首先從應用架構的發展歷程講起,介紹了微服務出現的背景,並對微服務架構的落地提出了相應的解決方案。然後分別詳細介紹了Spring Cloud微服務體系中的核心常用元件,如Eureka、Feign、Ribbon,Hystrix、Zuul等。最後通過一個綜合案例將前面介紹的元件連線起來,幫助大家融會貫通。

第1章微服務與Spring Cloud

1.1 微服務架構概述

  • 應用架構的發展
  • 微服務架構
  • 微服務解決方案

1.2 Spring Cloud與中介軟體

  • 中介軟體概述
  • 什麼是Spring Cloud
  • Spring Cloud專案模組
  • Spring Cloud與服務治理中介軟體
  • Spring Cloud與配置中心中介軟體
  • Spring Cloud與閘道器中介軟體
  • Spring Cloud與全鏈路監控中介軟體

1.3 Spring Cloud增強生態

  • Spring Cloud分散式事務
  • Spring Cloud與領域驅動
  • Spring Cloud與gRPC
  • Spring Cloud與Dubbo生態融合

第2章+第三章 Spring Cloud Eureka(上下篇)

  • 服務發現概述
  • Spring Cloud Eureka入門案例
  • Eureka Server的RESTAPI簡介
  • Eureka的核心類
  • 服務的核心操作
  • Eureka的設計理念
  • Eureka引數調優及監控
  • Eureka實戰
  • Eureka故障演練

第4章 Spring Cloud Feign的使用擴充套件

4.1 Feign概述

  • 什麼是Feign
  • Feign的入門案例
  • Feign的工作原理

4.2 Feign的基礎功能

  • FeignClient註解剖析
  • Feign開啟GZIP壓縮
  • Feign支援屬性檔案配置
  • Feign Client開啟日誌
  • Feign的超時設定

4.3 Feign的實戰運用

  • Feign預設Client的替換
  • Feign的Post和Get的多引數傳遞
  • Feign的檔案上傳
  • 解決Feign首次請求失敗問題
  • Feign返回圖片流處理方式
  • Feign呼叫傳遞Token

4.4 venus-cloud-feign設計與使用

  • venus-cloud-feign的設計
  • venus-cloud-feign的使用

第5章 Spring Cloud Ribbon實戰運用

5.1 Spring Cloud Ribbon概述

  • Ribbon與負載均衡
  • 入門案例

5.2 Spring Cloud Ribbon實戰

  • Ribbon負載均衡策略與自定義配置
  • Ribbon超時與重試
  • Ribbon的飢餓加裁
  • 利用配置檔案自定義Ribbon客戶端
  • Ribbon脫離Eureka的使用

5.3 Spring Cloud Ribbon進階

  • 核心工作原理
  • 負載均衡策略原始碼導讀

第6章 Spring Cloud Hystrix實戰運用

6.1 Spring Cloud Hystrix概述

  • 解決什麼問題
  • 設計目標

6.2 Spring Cloud Hystrix實戰運用

  • 入門示例
  • Feign中使用斷路器
  • Hystrix Dashboard
  • Turbine聚合Hystrix
  • Hystrix異常機制和處理
  • Hystrix配置說明
  • Hystrix執行緒調整和計算
  • Hystrix請求快取
  • Hystrix Request Collapser
  • Hystrix執行緒傳遞及併發策略
  • Hystrix命令註解

第7章 Spring Cloud Zuul基礎篇

  • Spring Cloud Zuul概述
  • Spring Cloud Zuul入門案例
  • Spring Cloud Zuul典型配置

第8章 Spring Cloud Zuul中級篇

  • Spring Cloud Zuul Filter鏈
  • Spring Cloud Zuul許可權整合
  • Spring Cloud Zuul限流
  • Spring Cloud Zuul動態路由
  • Spring Cloud Zuul灰度釋出
  • Spring Cloud Zuul檔案上傳
  • Spring Cloud Zuul實用小技巧

第9章 Spring Cloud Zuul高階篇

  • Spring Cloud Zuul多層負載
  • Spring Cloud Zuul應用優化
  • Spring Cloud Zuul原理&核心原始碼解析

第10章 Spring Cloud基礎綜合案例

10.1 基礎框架

  • 搭建說明
  • 技術方案
  • 具體實現

10.2 實戰擴充套件

  • 公共包(物件,攔截器,工具類等)
  • 使用者上下文物件傳遞
  • Zuul的Fallback機制

10.3 生產環境各元件參考配置

  • Eureka推薦配置
  • Ribbon推薦配置
  • Hystrix推薦配置
  • Zuul推薦配置

第11~18章為進階實戰部分,在核心元件的基礎上,對Config、Consul、認證和鑑權、全鏈路監控以及Spring Cloud生態圈中第二代閘道器Spring Cloud Gateway進行詳細闡述,循序漸進、案例驅動,幫助讀者加深對元件的理解,更好地掌握相關內容並運用於生產實踐中。

第11章 Spring Cloud Config上篇

11.1 Spring Cloud Config配置中心概述

  • 什麼是配置中心
  • Spring Cloud Config
  • Spring Cloud Config入門案例

11.2 重新整理配置中心資訊

  • 手動重新整理操作
  • 結合Spring Cloud Bus熱重新整理

第12章 Spring Cloud Config下篇

12.1 服務端Git配置詳解與實戰

  • Git多種配置詳解概述
  • Git中URI佔位符
  • 模式匹配和多個儲存庫
  • 路徑搜尋佔位符

12.2 關係型資料庫的配置中心的實現

  • Spring Cloud Config基於MySQL的配置概述
  • Spring Cloud Config與MySQL結合案例

12.3 非關係型資料庫的配置中心的實現

  • Spring Cloud Config基於MongoDB的配置概述
  • Spring Cloud Config MongoDB案例

12.4 Spring Cloud Config使用技能

12.5 Spring Cloud Config功能擴充套件

  • 客戶端自動重新整理
  • 客戶端回退功能
  • 客戶端的安全認證機制JWT

12.6 高可用部分

  • 客戶端高可用
  • 服務端高可用

12.7 Spring Cloud與Apollo配置使用

  • Apollo簡介
  • Apollo具備功能
  • Apollo總體架構模組
  • 客戶端設計
  • Apollo執行環境方式

12.8 Spring Cloud與Apollo結合使用實戰

  • Apollo環境的要求
  • Apollo基礎資料匯入
  • 建立config-client-apollo
  • 建立gateway-zuul-apollo

第13章 Spring Cloud Consul上篇

13.1 Consul簡介

  • 什麼是Consul
  • Consul能做什麼
  • Consul的安裝
  • Consul啟動
  • Consul Ul
  • Consul實用介面

13.2 Spring Cloud Consul簡介

  • Spring Cloud Consul是什麼
  • Spring Cloud Consul能做什麼
  • Spring Cloud Consul入門案例

第14章 Spring Cloud Consul下篇

14.1 Spring Cloud Consul深入

  • Spring Cloud Consul的模組介紹
  • Spring Cloud Consul Discovery
  • Spring Cloud Consul Config

14.2 Spring Cloud Consul功能重寫

  • 重寫ConsulDiscoveryClient
  • 重寫ConsulServerList

14.3 常見問題排查

  • 版本相容的那些坑
  • Spring Cloud Consul的一些問題

第15章 Spring Cloud認證和鑑權

15.1 微服務安全與許可權

15.2 Spring Cloud認證與鑑權方案

  • 單體應用下的常用方案
  • 微服務下SSO單點登入方案
  • 分散式Session與閘道器結合方案
  • 客戶端Token與閘道器結合方案
  • 瀏覽器Cookie與閘道器結合方案
  • 閘道器與Token和服務間鑑權結合

15.3 Spring Cloud認證鑑權實戰案例

  • 建立Spring Cloud Gateway及關聯資訊
  • 核心的公共工程core-service
  • 服務提供方工程provider-service
  • 客戶端工程client-service
  • 執行結果

第16章 Spring Cloud全鏈路監控

16.1 全鏈路監控概述
16.2 Sleuth基本用法
16.3 Sleuth深入用法
16.4 Spring Cloud與SkyWalking
16.5 Spring Cloud與Skywalking實戰
16.6 Spring Cloud與Pinpoint
16.7 Spring Cloud與Pinpoint實戰

第17章 Spring Cloud Gateway上篇

17.1 Spring Cloud Gateway概述
17.2 Spring Cloud Gateway的工作原理
17.3 Spring Cloud Gateway入門案例
17.4 Spring Cloud Gateway的路由斷言
17.5 Spring Cloud Gateway的內建Filter

第18章 Spring Cloud Gateway下篇

18.1 Gateway基於服務發現的路由規則

18.2 Gateway Filter和Global Filter

18.3 Spring Cloud Gateway實戰

  • Spring Cloud Gateway權重路由
  • Spring Cloud Gateway中Https的使用技巧
  • Spring Cloud Gateway整合Swagger
  • Spring Cloud Gateway限流
  • Spring Cloud Gateway的動態路由

18.4 Spring Cloud Gateway原始碼篇

  • Spring Cloud Gateway的處理流程
  • Gateway中ServerWebExchange構建分析
  • DispatcherHandler原始碼分析
  • RoutePredicateHandlerMapping原始碼分析
  • FilteringWebHandler原始碼分析
  • 執行Filter原始碼分析

第19~25章為解決方案部分,主要從解決方案著手,內容包括Spring Cloud與gRPC的整合方式、版本控制與灰度釋出、Spring Cloud容器化、Dubbo向Spring Cloud的遷移、分散式事務、領域驅動等生產級實用解決方案,為企業IT架構微服務化和變革保駕護航。

第19章 Spring Cloud與gRPC上篇

19.1 Spring Cloud為什麼需要gRPC
19.2 gRPC簡介
19.3 gRPC的一些核心概念
19.4 RPC的生命週期
19.5 gRPC依賴於Protocol Buffers
19.6 gRPC基於HTTP
19.7 gRPC基於Netty進行IO處理
19.8 gRPC案例實戰

第20章 gRPC在Spring Cloud與gRPC下篇

20.1 gRPC Spring Boot Starter介紹
20.2 gRPC Spring Boot Starter架構設計
20.3 gRPC Spring Boot Starter原始碼分析

  • gRPC Server Spring Boot Starter原始碼解析
  • gRPC Client Spring Boot Starter原始碼解析

20.4案例實戰

  • 註冊中心
  • 鏈路追蹤服務端
  • gRPC的lib工程
  • gRPC服務端
  • gRPC客戶端

第21章 Spring Cloud版本控制與灰度釋出

21.1 背景
21.2 常見釋出方式

  • 藍綠髮布
  • 滾動釋出
  • 灰度釋出
  • 對比

21.3 版本控制與灰度釋出實戰

  • Discovery專案
  • 實戰案例
  • 實戰測試

第22章 Spring Cloud容器化

22.1 Java服務Docker化

  • 基礎映象選擇
  • Dockerfile編寫
  • 映象構建外掛
  • JDK8+的Docker支援
  • JDK9+映象優化

22.2 Spring Cloud元件的Docker化

  • Docker化配置
  • config-server的Docker化
  • eureka-server的Docker化
  • gateway的Docker化
  • turbine的Docker化
  • Spring Admin的Docker化
  • biz-service的Docker化
  • 網絡卡選擇

22.3 使用Kubernetes管理

  • 概述
  • 本地安裝Kubernetes
  • 部署到Kubernetes
  • ─鍵伸縮
  • 滾動升級

第23章 Dubbo向Spring Cloud遷移

23.1將Dubbo服務納入Spring Cloud體系中

  • 將Dubbo專案改造成Spring Boot專案
  • 整合Spring Cloud元件
  • 將Dubbo服務暴露為RESTfulAPI

23.2將Spring Cloud服務Dubbo化

  • 服務註冊中心
  • 服務提供者
  • 服務消費者
  • Spring Cloud Dubbo框架原理

第24章 Spring Cloud與分散式事務

24.1 概述

  • ACID
  • X/Open DTP模型與XA介面
  • CAP與BASE定理

24.2 解決方案

  • Java事務程式設計介面JTA
  • 分散式事務TCC模式
  • 分散式事務SAGA模式

24.3 實戰

  • Atomikos JTA
  • TCC for REST
  • Servicecomb SAGA

第25章 Spring Cloud與領域驅動實踐

25.1領域驅動概述

  • Spring Cloud與領域驅動
  • 為什麼需要領域建模

25.2領域驅動核心概念

  • 實體概述
  • 值物件概述
  • 領域服務
  • 聚合及聚合根
  • 邊界上下文
  • 工廠
  • 倉儲/資源庫
  • CQRS架構
  • 領域事件
  • 領域驅動模型的設計步驟

25.3 Halo框架的設計

  • DDD應用框架的意義
  • 領域驅動框架現狀
  • Halo框架概述
  • Halo框架分層設計
  • Halo框架中的CQRS設計
  • Command與Command Bus設計
  • Event與Event Bus設計
  • Extend擴充套件點設計
  • 業務身份設計
  • 規範設計

25.4 Spring Cloud與Halo實戰

  • 事件風暴尋找模型和聚合
  • Spring Cloud與Halo實戰案例
  • 新建二方包工程模組
  • 新建DDD基礎設施層
  • 新建DDD領域層
  • 新建DDD應用層
  • 啟動測試

這份【重學微服務SpringCloud實戰】文件共有656頁,需要完整版的朋友:

快速入手通道:(點這裡)下載!誠意滿滿!!!

Java面試精選題、架構實戰文件傳送門:https://docs.qq.com/doc/DRW1nUkdhZG5zeGVi

整理不易,覺得有幫助的朋友可以幫忙點贊分享支援一下小編~

你的支援,我的動力;祝各位前程似錦,offer不斷!!!

Spring Cloud 的出現,可以說是為微服務架構迎來一縷曙光,有 SpringCloud社群的巨大支援和技術保障,讓我們實施微服務架構變得異常簡單了起來,它不像我們之前所列舉的框架那樣,只是解決微服務中的某一個問題,而是一個解決微服務架構實施的綜合性解決框架,它整合了諸多被廣泛實踐和證明有效的框架作為實施的基礎元件,又在該體系基礎上建立了一些非常優秀的邊緣元件將它們很好地整合起來。

好了,今天的SpringCloud就分享到這裡,希望能夠幫助到各位的學習,提升自己技術深度和廣度的同時,靈活將自己所掌握的技術點應用到工作中,升職加薪!共勉!!!