天天看點

Consul介紹:什麼是Consul & 與其他軟體的比較Consul介紹什麼是consul關鍵特性:基礎架構:vs. 其他軟體

Consul介紹

什麼是consul

Consul是一個服務網格解決方案,提供了一個功能齊全的控制台、具有服務注冊發現、配置中心和分段功能。Consul的每一個特性既可以根據需要單獨使用,又可以一起使用來建構完成的服務網格。Consul擁有一個資料層且支援代理和本地內建模型。Consul提供了一個簡易的内置代理以友善開箱即用,同僚也支援第三方代理內建例如[Envoy](https://www.envoyproxy.io)。
           

關鍵特性:

1. 服務發現:用戶端可以通過Consul注冊一個服務,例如 api 或 mysql,并且其他用戶端可以通過Consul發現服務提供者。通過DNS或HTTP,應用程式可以友善的找到她們依賴的其他服務。  
2. 健康檢查:Consul用戶端可以提供任意數量的健康狀況檢查,這些檢查要麼與給定的服務相關(“web伺服器是否傳回200 OK”),要麼與本地節點相關(“記憶體使用率是否低于90%”)。管理者可以使用這些資訊監視群集運作狀況,服務發現元件也可以使用此資訊将請求路由到遠離不健康的主機。
3. KV存儲:應用程式可以将Consul的KV存儲用于任何目的,包括動态配置、功能标記、協調、leader選舉等。并提供了簡易的HTTP API使其易于使用。 
4. 安全機制:Consul可以生成和頒發服務的TLS證書,以建立TLS連接配接。原型(Intentions)是定義允許哪些服務進行通信。使用可以随時變更的Intentions,而不是使用複雜的網絡拓撲和靜态防火牆規則,可以輕松地管理服務分段。
5. 多資料中心:Consul提供開箱即用的多資料中心支援。這意味着Consul的使用者不必擔心建構額外的抽象層來應對多區域中心擴充。

Consul的設計對DevOps社群和應用開發人員都非常友好,非常适合現代的、彈性的基礎設施。
           

基礎架構:

Consul是一個分布式,高可用系統。本節隻覆寫Consul的基本概念,更多的細節請[點選](https://www.consul.io/docs/connect/intentions.html)
           
Consul介紹:什麼是Consul & 與其他軟體的比較Consul介紹什麼是consul關鍵特性:基礎架構:vs. 其他軟體
Consul提供服務的每個節點都運作着一個consul代理。發現其他服務或擷取/設定密鑰/值資料不需要運作代理。代理負責檢查節點上的服務以及節點本身的運作狀況。
代理與一到多個Consul服務對話。Consul服務負責資料存儲和複制,這些服務選舉出一個leader(raft)。雖然Consul可以在一台伺服器上運作,但建議使用3到5台伺服器避免鼓掌導緻資料丢失。每個資料中心建議搭建一套Consul叢集。
基礎設施中的元件通過任何Consul伺服器或其代理可以通路到其他服務或檢點。代理會将請求路由到Consul伺服器。
每一個資料中心運作着一個Consul叢集。當發起一個跨資料中心服務發現或配置變更,本地Consul伺服器會轉發請求到遠端資料中心并傳回結果。
           

vs. 其他軟體

類型 CAP 內建 KV存儲 健康檢查 安全 多資料中心支援 一緻性
zookeeper CP SDK 支援 長連接配接,keepalive ACL NO Paxos
doozerd sdk --
etcd http/grpc 連接配接心跳 https支援(弱) raft
consul http/dns 服務狀态,記憶體,硬碟等 https/acl