etcd:從應用場景到實現原理的全方位解讀(轉)

本文轉載自:https://www.infoq.cn/article/etcd-interpretation-application-scenario-implement-principle

隨着 CoreOS 和 Kubernetes 等項目在開源社區日益火熱,它們項目中都用到的 etcd 組件作爲一個高可用強一致性的服務發現存儲倉庫,漸漸爲開發人員所關注。在雲計算時代,如何讓服務快速透明地接入到計算集羣中,如何讓共享配置信息快速被集羣中的所有機器發現,更爲重要的是,如何構建這樣一套高可用、安全、易於部署以及響應快速的服務集羣,已經成爲了迫切需要解決的問題。etcd 爲解決這類問題帶來了福音,本文將從 etcd 的應用場景開始,深入解讀 etcd 的實現方式,以供開發者們更爲充分地享用 etcd 所帶來的便利。

經典應用場景
要問 etcd 是什麼?很多人第一反應可能是一個鍵值存儲倉庫,卻沒有重視官方定義的後半句,用於配置共享和服務發現。

實際上,etcd 作爲一個受到 ZooKeeper 與 doozer 啓發而催生的項目,除了擁有與之類似的功能外,更專注於以下四點。

  • 簡單:基於 HTTP+JSON 的 API 讓你用 curl 就可以輕鬆使用。
  • 安全:可選 SSL 客戶認證機制。
  • 快速:每個實例每秒支持一千次寫操作。
  • 可信:使用 Raft 算法充分實現了分佈式。

隨着雲計算的不斷髮展,分佈式系統中涉及到的問題越來越受到人們重視。受阿里中間件團隊對ZooKeeper 典型應用場景一覽一文的啓發,筆者根據自己的理解也總結了一些 etcd 的經典使用場景。讓我們來看看 etcd 這個基於 Raft 強一致性算法的分佈式存儲倉庫能給我們帶來哪些幫助。

值得注意的是,分佈式系統中的數據分爲控制數據和應用數據。使用 etcd 的場景默認處理的數據都是控制數據,對於應用數據,只推薦數據量很小,但是更新訪問頻繁的情況。

etcd場景總結:

  1. 場景一:服務發現(Service Discovery)
  2. 場景二:消息發佈與訂閱
  3. 場景三:負載均衡
  4. 場景四:分佈式通知與協調
  5. 場景五:分佈式鎖
  6. 場景六:分佈式隊列
  7. 場景七:集羣監控與 Leader 競選
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章