目標是減小或消除組件之間的「手動」的鏈接。當你把你的應用程序推送進生產的時候,全部的這些事情均可以配置:數據庫服務器的主機和端口,REST 服務的 URL 等等,在一個高可擴展的架構中,這些鏈接能夠動態改變。一個新的後端能夠被添加,一個數據庫節點能夠被中止。你的應用須要適應這種動態環境。算法
這裏有一些工具能夠管理這些需求(Apache Zookeeper, etcd, ...)。這些工具的廣泛原則是:當啓動的時候,一個服務的實例必須註冊進配置服務器。當中止的時候(完美中止或是 Crash 了),節點必須從配置服務中移除掉。註冊後,其餘服務能夠在配置服務器中搜索到提供製度服務的實例列表(主機和端口)。數據庫
歷史 | 使用者 | 開發語言 | 存儲 | 一致性 | 訪問 | 安全 | 性能 | 功能 | 界面 | 優勢 | 缺點 | |
zookeeper | 悠久,來源於 hadoop 項目 | YouTube、eBay、雅虎(還有大量使用hadoop 的) | Java | 類文件系統 | Paxos | 沒有http 客服端,可是有多種緣由客服端 | 能夠有ACL | 本身開發或第三方 | 無 | 的主要優點是其成熟、健壯以及豐富的特性 | 重,無用特性過多,形成資源的浪費 | |
consul | 是HashiCorp公司推出的開源工具 | go | 鍵值存儲系統 | 使用 Raft 算法來保證一致性 | 支持 http 和 dns 協議接口 | http 訪問 咩有ssl ,可是還有ACL | 集成服務註冊與發現框架 | 有 | 情,功能目標準確,支持多數據中心 | |||
etcd | 短,CoreOS開發 | Google的容器集羣管理系統Kubernetes、開源PaaS平臺Cloud Foundry和CoreOS的Fleet都普遍使用了etcd。 | go | 鍵值存儲系統 | 使用Raft保證一致性 | curl可訪問的用戶的API(HTTP+JSON) | 可選的SSL客戶端證書認證 | 快速: 單實例每秒 1000 次寫操做 | 本身開發或第三方 | 無 |