天天看點

【學習】Spring Cloud學習筆記

Spring Cloud學習筆記

    • 一、Spring Cloud是什麼?
    • 二、核心概念
    • 三、分布式配置中心
      • 3.1 分布式配置中心的由來
      • 3.2 分布式配置中心的特點
      • 3.3 配置的統一管理
      • 3.4 配置動态實時重新整理
      • 3.5 配置的權限控制
      • 3.6 配置的版本控制
      • 3.7 配置的灰階釋出
      • 3.8 常用配置中心元件
    • 四、分布式注冊中心
      • 4.1 什麼是注冊中心?
      • 4.2 注冊中心的特點
      • 4.3 服務的自動注冊
      • 4.4 服務的健康檢查
      • 4.5 服務的自動發現
      • 4.6 常見注冊中心元件
    • 五、服務網關
      • 5.1 什麼是服務網關?
      • 5.2 服務網關的特點
      • 5.3 高并發
      • 5.4 安全
      • 5.5 路由轉發
      • 5.6 監控與限流
      • 5.7 灰階釋出
      • 5.8 服務重試
      • 5.9 服務别名
      • 5.10 常見服務網關元件
    • 六、負載均衡

一、Spring Cloud是什麼?

Spring Cloud為開發者提供了一套快速開發分布式系統的元件,Spring Cloud并不推薦重複造輪子,主張利用Spring Boot将其他公司較為成熟的元件進行封裝。

二、核心概念

  • 配置中心
  • 注冊中心
  • 服務網關
  • 負載均衡
  • RPC調用
  • 服務熔斷
  • 服務降級
  • 服務限流
  • 全局鎖
  • 控制總線
  • 分布式事務
  • 服務安全
  • 鍊路追蹤
  • 叢集管理
  • 事件驅動
  • 任務排程
  • 雲連接配接器
  • 函數計算

三、分布式配置中心

3.1 分布式配置中心的由來

微服務系統中,存在很多功能開關和各種參數的配置項,傳統的配置檔案、資料庫等方式無法滿足開發人員對配合管理的需求,此時分布式配置中心應運而生。

3.2 分布式配置中心的特點

  • 統一管理
  • 區分環境
  • 實時重新整理
  • 權限控制
  • 版本控制
  • 灰階釋出

3.3 配置的統一管理

配置中心服務端負責配置的管理(新增、修改、删除、釋出),內建了配置中心用戶端的微服務程式可以統一從配置中心服務端拉取配置,進而實作整個微服務系統的統一配置管理。

一個微服務應用中的某些配置項,在不同的環境(開發、測試、生産)通常是不同的,作為分布式配置中心需要具有隔離不同環境的功能,使得同一個微服務在不同環境能拉取到對應的配置。

3.4 配置動态實時重新整理

當配置中心服務端中的配置發生了修改時,配置中心用戶端需要能實時監聽到配置的改變,使得微服務應用程式可以實時擷取到最新的配置,并且不用重新部署應用程式。

3.5 配置的權限控制

在配置中心,可以針對不同的角色或使用者設定對應的權限,比如張三可以建立配置項,但不能釋出配置;比如小明可以檢視配置項,但不能修改配置。

3.6 配置的版本控制

在使用配置中心的過程中,難免會出現誤操作,而這個時候就需要進行版本回退,是以作為配置中心,是一定要支援版本控制的。

3.7 配置的灰階釋出

在需要釋出一項配置時,如果需要釋出到多個執行個體(叢集),那麼此時可以隻釋出到部分執行個體,待測試通過後,再釋出到全部執行個體,這就是配置的灰階釋出。

3.8 常用配置中心元件

  • Spring Cloud Config
  • 阿裡Nacos
  • 攜程Apollo
  • 谷歌consul

四、分布式注冊中心

4.1 什麼是注冊中心?

注冊中心相當于微服務架構中的位址通訊錄,每個微服務會将服務及其位址注冊到注冊中心,服務消費者在調用某個微服務之前會先從注冊中心查找服務位址,然後在進行調用。

4.2 注冊中心的特點

  • 服務的自動注冊
  • 服務的健康檢查
  • 服務的自動發現

4.3 服務的自動注冊

微服務應用在啟動時,通過注冊中心用戶端元件,将服務相關資訊自動注冊給注冊中心服務端。

4.4 服務的健康檢查

當已經注冊到注冊中心的微服務執行個體當機後,注冊中心服務端能發現執行個體已經當機,并把相關資訊從注冊中心删除掉。

4.5 服務的自動發現

服務消費者需要能實時監聽到注冊中心中服務資訊的變更,以能在真正調用服務時不會出現錯誤。

4.6 常見注冊中心元件

  • Zookeeper
  • Eureka
  • Nacos
  • Consul

五、服務網關

5.1 什麼是服務網關?

服務網關是整個微服務架構中對外的統一入口,所有的用戶端都通過統一的網關使用微服務,服務網關起到了隔離外部通路和内部系統的作用,服務網關是微服務架構中的一個标配元件。

5.2 服務網關的特點

  • 高并發
  • 安全
  • 路由轉發
  • 監控與限流
  • 灰階釋出
  • 服務重試
  • 服務别名

5.3 高并發

作為微服務架構中的對外入口,必須能支援高并發,能承擔更高的并發量,并保證高性能。

5.4 安全

服務網關通常具有權限認證、黑名單、白名單等保證網關安全的功能

5.5 路由轉發

服務網關接收到外部請求後,要求服務網關能根據請求和配置将請求轉發到對應的後端微服務上去。

5.6 監控與限流

作為整個系統的流量入口,服務網關要能監控流量情況,遇到突發情況時能及時限流,保證整個系統的穩定。

5.7 灰階釋出

當某個微服務有新版本更新上線時,可利用服務網關進行流量的切換,實作該微服務的灰階釋出。

5.8 服務重試

當服務網關調用某個微服務失敗後,可以通過服務網關設定重試政策來重新嘗試調用該服務。

5.9 服務别名

可以在服務網關中給某個或某些微服務設定别名,進而對外屏蔽内部微服務相關資訊。

5.10 常見服務網關元件

  • Kong
  • Zuul
  • Spring Cloud Gateway

六、負載均衡

繼續閱讀