SpringCloud分佈式的五大重點

SpringCloud分佈式的五大重點的基本介紹

服務器的註冊與發現—Netflix Eureka

客戶端負載均衡—Netflix Ribbon

斷路器—Netflix Hystrix

服務網關—Netflix Zuui

分佈式配置—Spring Cloud Config

Eureka:

一個RESTful服務,用來定位運行在AWS地區(Region)中的中間層服務。

它由兩個組件組成:Eureka服務器和Eureka客戶端。

  1. Eureka服務器用作服務註冊服務器。

  2. Eureka客戶端是一個java客戶端,用來簡化與服務器的交互、作爲輪詢負載均衡器,並提供服務的故障切換支持。

Netflix在其生產環境中使用的是另外的客戶端,它提供基於流量、資源利用率以及出錯狀態的加權負載均衡。

Ribbon

主要提供客戶側的軟件負載均衡算法。

Ribbon客戶端組件提供一系列完善的配置選項,比如連接超時、重試、重試算法等。

Ribbon內置可插拔、可定製的負載均衡組件。

一些常用的負載均衡策略:

  1. 簡單輪詢負載均衡

  2. 加權響應時間負載均衡

  3. 區域感知輪詢負載均衡

  4. 隨機負載均衡

Ribbon中還包括一下功能:

  1. 易於與服務發現組件(比如Netflix的Eureka)集成

  2. 使用Archaius完成運行時配置

  3. 使用JMX暴露運維指標,使用Servo發佈

  4. 多種可插拔的序列化選擇

  5. 異步和批處理操作(即將推出)

  6. 自動SLA框架(即將推出)

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

Hystrix

斷路器可以防止一個應用程序多次試圖執行一個操作,即很可能失敗,允許它繼續而不等待故障恢復或者浪費 CPU 週期,而它確定該故障是持久的.

斷路器模式也使應用程序能夠檢測故障是否已經解決。如果問題似乎已經得到糾正​​,應用程序可以嘗試調用操作。

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

Zuui

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

Spring Cloud Config

SpringCloudConfig就是我們通常意義上的分佈式配置中心,把應用原本放在本地文件的配置抽取出來放在中心服務器,從而能夠提供更好的管理、 發佈能力。

SpringCloudConfig分爲服務端和客戶端,服務端負責將git(svn)中存儲的配置文件發佈成REST接口,客戶端可以從服務端REST接口獲取配置。但客戶端並不能主動感知到配置的變化,從而主動去獲取新的配置, 它需要每個客戶端通過POST方法觸發各自的/refresh,SpringCloudBus就通過一個輕量級消息代理連接分佈式系統的節點。

可以用於廣播狀態更改(如配置更改)或其他管理指令。

SpringCloudBus提供了通過POST方法訪問的endpoint/bus/refresh,這個接口通常由git的鉤子功能調用,用以通知各個SpringCloudConfig的客戶端去服務端更新配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章