Docker的etcd簡介

2018-08-04 18:17 更新

什么是 etcd

etcd 是 CoreOS 團(tuán)隊于 2013 年 6 月發(fā)起的開源項目,它的目標(biāo)是構(gòu)建一個高可用的分布式鍵值(key-value)數(shù)據(jù)庫,基于 Go 語言實現(xiàn)。我們知道,在分布式系統(tǒng)中,各種服務(wù)的配置信息的管理分享,服務(wù)的發(fā)現(xiàn)是一個很基本同時也是很重要的問題。CoreOS 項目就希望基于 etcd 來解決這一問題。

etcd 目前在 github.com/coreos/etcd 進(jìn)行維護(hù),即將發(fā)布 2.0.0 版本。

受到 Apache ZooKeeper 項目和 doozer 項目的啟發(fā),etcd 在設(shè)計的時候重點(diǎn)考慮了下面四個要素:

  • 簡單:支持 REST 風(fēng)格的 HTTP+JSON API
  • 安全:支持 HTTPS 方式的訪問
  • 快速:支持并發(fā) 1k/s 的寫操作
  • 可靠:支持分布式結(jié)構(gòu),基于 Raft 的一致性算法

注:Apache ZooKeeper 是一套知名的分布式系統(tǒng)中進(jìn)行同步和一致性管理的工具。注:doozer 則是一個一致性分布式數(shù)據(jù)庫。注:Raft 是一套通過選舉主節(jié)點(diǎn)來實現(xiàn)分布式系統(tǒng)一致性的算法,相比于大名鼎鼎的 Paxos 算法,它的過程更容易被人理解,由 Stanford 大學(xué)的 Diego Ongaro 和 John Ousterhout 提出。更多細(xì)節(jié)可以參考 raftconsensus.github.io。

一般情況下,用戶使用 etcd 可以在多個節(jié)點(diǎn)上啟動多個實例,并添加它們?yōu)橐粋€集群。同一個集群中的 etcd 實例將會保持彼此信息的一致性。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號