etcd 越來越火熱,在 Google 、AWS、 阿里、騰訊等公司都有大量應用。如果你還不瞭解,甚至還沒聽過,相信通過這篇文了解之後,你會對它“真香”。
etcd 是高可用、強一致性的 Key-Value 存儲系統,一個 etcd 集羣由奇數節點組成,多節點之間通過 Raft 算法解決數據一致性問題。
雲原生時代的寵兒
Kubernetes 將 etcd 作爲核心元數據的存儲服務,是它的一個高光時刻。隨着雲原生和容器化的浪潮,越來越多公司基於 Kubernetes 構建上層平臺,etcd 是你必會的關鍵組件。
比ZooKeeper好用的新秀
解決分佈式系統數據一致性問題,ZooKeeper 已經穩固了江湖地位,然而 etcd 相比它,有了許多便捷性優勢,比如:
-
支持增量快照,避免了 ZooKeeper 的快照暫停問題; -
無需像 ZooKeeper 那樣爲每個 watch 都做個 socket 連接,可以複用; -
ZooKeeper 每個 watch 只能收到一次事件通知,etcd 可以持續監控,一次 watch 觸發後無需再設置一次 watch; -
……
etcd 爲什麼好用卻難懂
etcd 對外提供了簡單直接的 API 接口,但是內部實現機制複雜。如果不懂關鍵技術的實現原理,工作中很多實際問題都如盲人摸象,比如:
-
etcd 是否適合你的業務場景,你能否設計出良好的存儲結構? -
如何讓集羣跑得更快? -
etcd 也會出現數據不一致嗎?爲什麼?你能否解決?
怎麼讀懂 etcd 才最高效
上手 etcd 的目標無非學會正確部署、運維、優化 etcd 集羣,正確調用 etcd 實現一致性存儲,在學有餘力的情況下,從優秀組件的設計原理中,提高對分佈式系統架構的理解。
(掃碼立即訂閱)
公衆號“aoho求索”的作者朱榮鑫,他也是服務端技術專家,一直致力於 etcd 的科普和佈道,近期在拉勾教育合作推出的課程,就是按照這個學習思路進行設計的(現在上新期優惠價僅需 1 元秒殺,永久收看,可以先囤起來,對照實際工作邊用邊學)。
首先,基礎概念與操作:etcd 的概念、特性、應用場景,單機和集羣部署的方式,集羣的動態配置、參數調優等。初步認識 etcd ,並掌握基本使用方法。
然後進入重難點,etcd 的關鍵技術及實現原理:你會了解比如 etcd-raft 模塊如何實現分佈式一致性、如何實現分佈式事務、watch 機制等常見業務場景。通過原理剖析,深入理解 etcd 的運行機制,有助於你後續二次開發,快速排查遇到的問題。
最後,進入實踐案例:掌握技術與原理之後,通過幾個實踐案例掌握 etcd ClientV3 的具體應用,包括如分佈式鎖、主從選舉,以及如何在微服務中集成 etcd 和在 Kubernetes 中如何基於 etcd 完成容器的調度,這些基本涵蓋你使用 etcd 的常見問題與解決方案。
這是課程大綱,非常實用
通過這個專欄,你能完全掌握 etcd 的使用,但是實際業務不同,每個人面臨的工作問題也不一樣,還是需要你結合實踐去探索,也許你也能夠解決 bug,向社區提交 PR,所以在學習中多多和同行一起交流,互相提供避坑經驗。
訂閱福利
1.訂閱後添加班主任可免費進入學習交流羣;
2.免費聽取不定期大咖公開課:1月28日晚8點,《基於美團,拆解大型微服務設計與落地》。
本文分享自微信公衆號 - 雲原生技術愛好者社區(programmer_java)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。