#SpringCloud淺析
###微服務發展模式
講SpringCloud之前,我們探討一下微服務架構的發展模式,最開始系統都是單體架構,逐漸演進爲SOA模式,然後微服務出現,最近服務網格模式也逐漸流行起來。
####單體模式
統一的數據庫,統一的應用,適合簡單的輕量級應用。
####微服務
適合構建複雜的應用,缺點是設計服務化有一定難度,開發變得較單體模式複雜,部署變得更麻煩。
微服務,SOA模式,服務網格的區別:
微服務:
- 模塊化
- 獨立部署
- 異構化
SOA模式:
- 共同的治理和標準
- 專注業務功能的重用
- 通信使用企業服務總線ESB
服務網格:
- 應用程序間通訊的中間層
- 輕量級網絡代理
- 應用程序無感知
- 解耦應用程序的重試/超時、監控、追蹤和服務發現
###SpringCloud
API網關zuul
我們首先學習SpringCloud全家桶中的API網關zuul。zuul本質上是一個web servlet應用,在微服務架構中起到了動態路由,監控,統一鑑權等作用。zuul核心爲一系列的filters。zuul的作用如下
- 權限校驗 : 識別資源的驗證並拒絕不符合要求的請求
- 性能檢測 : 在服務邊界統計數據
- 動態路由 : 將請求動態路由到服務中
- 壓力測試: 逐漸增加指向集羣的負載流量,從而計算性能水平。
- 負載分配: 爲每一種負載類型分配對應容量,並棄用超出限定值的請求。
- 靜態響應處理: 在服務邊界直接返回某些特定靜態資源,避免請求後臺
服務註冊與發現Eureka
Eureka的主要作用爲服務的註冊與發現,Eureka採用C-S架構模式,Eureka側重於可用性。Eureka分爲三個角色。
- Eureka Server:提供服務註冊服務,各個節點啓動後,會在Eureka Server中進行註冊。
- 服務提供方 :將發佈的服務註冊到eureka中
- 服務調用方 : 從eureka中獲取服務列表,調用服務。