1. 程式人生 > >SpringCloud分散式開發五大神獸(一)

SpringCloud分散式開發五大神獸(一)

SpringCloud分散式開發五大神獸

  • 服務發現——Netflix Eureka

  • 客服端負載均衡——Netflix Ribbon

  • 斷路器——Netflix Hystrix

  • 服務閘道器——Netflix Zuul

  • 分散式配置——Spring Cloud Config

Eureka

一個RESTful服務,用來定位執行在AWS地區(Region)中的中間層服務。由兩個元件組成:Eureka伺服器和Eureka客戶端。Eureka伺服器用作服務註冊伺服器。Eureka客戶端是一個java客戶端,用來簡化與伺服器的互動、作為輪詢負載均衡器,並提供服務的故障切換支援。Netflix在其生產環境中使用的是另外的客戶端,它提供基於流量、資源利用率以及出錯狀態的加權負載均衡。

Ribbon

Ribbon,主要提供客戶側的軟體負載均衡演算法。

Ribbon客戶端元件提供一系列完善的配置選項,比如連線超時、重試、重試演算法等。Ribbon內建可插拔、可定製的負載均衡元件。下面是用到的一些負載均衡策略:

  • 簡單輪詢負載均衡

  • 加權響應時間負載均衡

  • 區域感知輪詢負載均衡

  • 隨機負載均衡

Ribbon中還包括以下功能:

  • 易於與服務發現元件(比如Netflix的Eureka)整合

  • 使用Archaius完成執行時配置

  • 使用JMX暴露運維指標,使用Servo釋出

  • 多種可插拔的序列化選擇

  • 非同步和批處理操作(即將推出)

  • 自動SLA框架(即將推出)

  • 系統管理/指標控制檯(即將推出)

Hystrix

斷路器可以防止一個應用程式多次試圖執行一個操作,即很可能失敗,允許它繼續而不等待故障恢復或者浪費 CPU 週期,而它確定該故障是持久的。斷路器模式也使應用程式能夠檢測故障是否已經解決。如果問題似乎已經得到糾正​​,應用程式可以嘗試呼叫操作。

斷路器增加了穩定性和靈活性,以一個系統,提供穩定性,而系統從故障中恢復,並儘量減少此故障的對效能的影響。它可以幫助快速地拒絕對一個操作,即很可能失敗,而不是等待操作超時(或者不返回)的請求,以保持系統的響應時間。如果斷路器提高每次改變狀態的時間的事件,該資訊可以被用來監測由斷路器保護系統的部件的健康狀況,或以提醒管理員當斷路器跳閘,以在開啟狀態。

流程圖

Zuul


類似nginx,反向代理的功能,不過netflix自己增加了一些配合其他元件的特性。

Spring Cloud Config


這個還是靜態的,得配合Spring Cloud Bus實現動態的配置更新。

參考