分佈式服務註冊和發現consul 簡要介紹

 

Consul是HashiCorp公司推出的開源工具,用於實現分佈式系統的服務發現與配置。與其餘分佈式服務註冊與發現的方案,Consul的方案更"一站式",內置了服務註冊與發現框 架、分佈一致性協議實現、健康檢查、Key/Value存儲、多數據中心方案,再也不須要依賴其餘工具(好比ZooKeeper等)。使用起來也較 爲簡單。Consul用Golang實現,所以具備自然可移植性(支持Linux、windows和Mac OS X);安裝包僅包含一個可執行文件,方便部署,與Docker等輕量級容器可無縫配合。nginx

Consul 的使用場景web

  • docker 實例的註冊與配置共享
  • coreos 實例的註冊與配置共享
  • vitess 集羣
  • SaaS 應用的配置共享
  • 與 confd 服務集成,動態生成 nginx 和 haproxy 配置文件

Consul 的優點算法

  • 使用 Raft 算法來保證一致性, 比複雜的 Paxos 算法更直接. 相比較而言, zookeeper 採用的是 Paxos, 而 etcd 使用的則是 Raft.
  • 支持多數據中心,內外網的服務採用不一樣的端口進行監聽。 多數據中心集羣能夠避免單數據中心的單點故障,而其部署則須要考慮網絡延遲, 分片等狀況等. zookeeper 和 etcd 均不提供多數據中心功能的支持.
  • 支持健康檢查. etcd 不提供此功能.
  • 支持 http 和 dns 協議接口. zookeeper 的集成較爲複雜, etcd 只支持 http 協議.
  • 官方提供web管理界面, etcd 無此功能.

綜合比較, Consul 做爲服務註冊和配置管理的新星, 比較值得關注和研究.docker

Consul 的角色windows

client: 客戶端, 無狀態, 將 HTTP 和 DNS 接口請求轉發給局域網內的服務端集羣. 
server: 服務端, 保存配置信息, 高可用集羣, 在局域網內與本地客戶端通信, 經過廣域網與其餘數據中心通信. 每一個數據中心的 server 數量推薦爲 3 個或是 5 個.網絡

相關文章
相關標籤/搜索