Consol

1. 簡介

2. 術語

  •  Agent: agent是一直運行在Consul集羣中每一個成員上的守護進程。經過運行 consul agent 來啓動。agent能夠運行在client或者server模式。
  • Client: 一個Client是一個轉發全部RPC到server的代理。這個client是相對無狀態的。client惟一執行的後臺活動是加入LAN gossip池。這有一個最低的資源開銷而且僅消耗少許的網絡帶寬。
  • Server: 一個server是一個有一組擴展功能的代理,這些功能包括參與Raft選舉,維護集羣狀態,響應RPC查詢,與其餘數據中心交互WAN gossip和轉發查詢給leader或者遠程數據中心。
  • DataCenter: 雖然數據中心的定義是顯而易見的,可是有一些細微的細節必須考慮。例如,在EC2中,多個可用區域被認爲組成一個數據中心?咱們定義數據中心爲一個私有的,低延遲和高帶寬的一個網絡環境。這不包括訪問公共網絡,可是對於咱們而言,同一個EC2中的多個可用區域能夠被認爲是一個數據中心的一部分。
  • Gossip: Consul創建在Serf的基礎之上,它提供了一個用於多播目的的完整的gossip協議。Serf提供成員關係,故障檢測和事件廣播。更多的信息在gossip文檔中描述。這足以知道gossip使用基於UDP的隨機的點到點通訊。
  • LAN Gossip: 它包含全部位於同一個局域網或者數據中心的全部節點。
  • WAN Gossip: 它只包含Server。這些server主要分佈在不一樣的數據中心而且一般經過因特網或者廣域網通訊。
  • RPC: 遠程過程調用。這是一個容許client請求server的請求/響應機制。

3. Consol架構

  • 每一個數據中心,client和server是混合的。通常建議有3-5臺server
  • 同一個數據中心的全部節點都必須加入gossip協議。這意味着gossip協議包含一個給定數據中心的全部節點。
  • 每一個數據中心的server都是Raft節點集合的一部分。這意味着它們一塊兒工做並選出一個leader,一個有額外工做的server。leader負責處理全部的查詢和事務。做爲一致性協議的一部分,事務也必須被複制到全部其餘的節點。由於這一要求,當一個非leader得server收到一個RPC請求時,它將請求轉發給集羣leader。
  • server節點也做爲WAN gossip Pool的一部分。這個Pool不一樣於LAN Pool,由於它是爲了優化互聯網更高的延遲,而且它只包含其餘Consul server節點。這個Pool的目的是爲了容許數據中心可以以low-touch的方式發現彼此。這使得一個新的數據中心能夠很容易的加入現存的WAN gossip。由於server都運行在這個pool中,它也支持跨數據中心請求。當一個server收到來自另外一個數據中心的請求時,它隨即轉發給正確數據中想一個server。該server再轉發給本地leader。
相關文章
相關標籤/搜索