consul是乙個服務發現框架
類似的還有zookeeper,eureka,etcd等
服務發現(service discovery)
健康檢查(health checking)
配置儲存管理(key/value storage)
可支援任意數量的區域:multi-datacente
最大的區別是eureka保證ap, consul為cp
consul強一致性(c)帶來的是:
服務註冊相比eureka會稍慢一些。因為consul的raft協議要求必須過半數的節點都寫入成功才認為註冊成功
leader掛掉時,重新選舉期間整個consul不可用。保證了強一致性但犧牲了可用性。
eureka保證高可用(a)和最終一致性:
服務註冊相對要快,因為不需要等註冊資訊replicate到其他節點,也不保證註冊資訊是否replicate成功
當資料出現不一致時,雖然a, b上的註冊資訊不完全相同,但每個eureka節點依然能夠正常對外提供服務,這會出現查詢服務資訊時如果請求a查不到,但請求b就能查到。如此保證了可用性但犧牲了一致性。
服務的健康檢查
euraka 使用時需要顯式配置健康檢查支援;zookeeper,etcd 則在失去了和服務程序的連線情況下任務不健康,而 consul 相對更為詳細點,比如記憶體是否已使用了90%,檔案系統的空間是不是快不足了。
多資料中心支援
consul 通過 wan 的 gossip 協議,完成跨資料中心的同步;而且其他的產品則需要額外的開發工作來實現;
kv 儲存服務
除了 eureka ,其他幾款都能夠對外支援 k-v 的儲存服務,所以後面會講到這幾款產品追求高一致性的重要原因。而提供儲存服務,也能夠較好的轉化為動態配置服務哦。
consul學習筆記
服務與服務之間的呼叫需要在配置檔案中填好主機和埠,不易於維護且分布式環境中不容易部署與擴容 那麼此時就需要考慮服務啟動時自己把主機和埠以及一些其他資訊註冊到註冊中心,這樣其他服務可以從中找到它,甚至更為簡單的註冊完畢後通過dns的方式來定址。consul提供了一套健康監測機制簡單的說針對http型別...
Consul實踐之Consul是什麼
consul是乙個兩年前由hashicorp組織發起的開源專案,因此至今有兩年以上的歷史。consul由go語言開發,部署起來非常容易,只需要極少的可執行程式和配置檔案,具有綠色 輕量級的特點。consul有一組元件,因此能提供多種功能,目前主要的功能就是服務發現,其他的附加功能,比如自動編排,ke...
Consul服務註冊中心 Consul工作原理
consul工作原理如下圖所示 當服務producer啟動時,會將自己的ip host等資訊通過傳送請求告知consul,consul接收到producer的註冊資訊後,每個10s 預設 會向producer傳送乙個健康檢查的請求,檢驗producer是否監控。當consumer請求producer...