如何使用Golang利用ectd實現一個分佈式鎖?

我們都知道最近幾年,隨着 K8s 成爲容器編排領域霸主,etcd 也越來越火,GitHub star 已超過 34.2K。當然這也與它的應用場景廣泛密不可分,從服務發現到分佈式鎖,從配置存儲到分佈式協調,可以說,etcd 已成爲雲原生和分佈式系統的存儲基石。
 
作爲當下最熱門的雲原生存儲之一,etcd 在騰訊、阿里、Google、AWS、美團、字節跳動、拼多多、Shopee 等公司都有大量應用,覆蓋的業務不僅有 K8s 相關的容器產品,更有視頻、推薦、安全、遊戲、存儲、集羣調度等核心業務。
 
但哪怕是 K8s 老兵,也很難保證不在 etcd 上翻車:

無論是從內存泄露到數據不一致,還是從節點crash到性能慢,再到死鎖、OOM等穩定性問題等,甚至聽說還有人通過混沌工程發現並修復了多個數據不一致Bug,其中一個Bug已經存在近3年之久,而且很嚴重,重啓就可能會觸發數據不一致。
 
上面這類棘手問題,在學習和使用 etcd、k8s 的過程中,只是冰山一角。快速解決的辦法,還是要對症下藥,這裏分享給你一張 etcd 典型問題圖譜,你可以對照自己的經歷仔細查閱。
 

這張圖出自騰訊雲資深工程師唐聰,他是騰訊雲 etcd 負責人、2020 年 etcd 社區全球 Top3 活躍貢獻者,之前在社區沒少看到他提交的代碼。
 
後來我才知道,這幾年他一直在和 Redis、etcd 打交道,解決過很多大規模業務增長中的存儲穩定性、可擴展性等問題,積累了豐富的大規模集羣實戰、治理經驗。參與 etcd 開源項目的貢獻經歷,也讓他對 etcd 和分佈式服務有了更深入的理解。
 
所以,他能從開發者的視角出發,爲你分析問題、梳理最佳實踐、解讀特性設計方案、闡述社區未來演進方向等等。
 
在專欄中,他深入解析了 etcd 核心原理 ,系統梳理其高效學習路徑,幫你掌握實踐中各類複雜 etcd 問題的解決方案,和在 Kubernetes、服務發現等應用場景的最佳實踐,構建高可靠的 etcd 集羣運維體系。
 
唐聰說,這個專欄是他自己多年經驗的交付,能解決你在學習、使用 etcd 過程中的很多問題。所以,跟着他學,你一定能用最低的學習成本,掌握 etcd 核心原理與最佳實踐,讓 etcd 真正爲你所用,在工作中少踩坑、少交學費,多升職、多漲薪。
 

掃碼免費試讀

秒殺+專屬口令 「studyetcd」 立省 ¥60
半價 到手 ¥69,即將 漲價至 ¥129
 
前面已經提到,唐聰是騰訊雲資深工程師,也是 2020 年 etcd 社區全球 Top3 的活躍貢獻者,修復了 etcd 數據不一致、內存泄露、死鎖、panic 等衆多問題,提升了 etcd 在大規模數據場景下的啓動、讀性能等。
 
他 2014 年本科畢業加入騰訊,不到一年時間,就主導完成了一個億級用戶的業務核心存儲平滑遷移任務。之後兩年,又構建了大規模排行榜和 Redis 集羣平臺服務,支撐了公司內部多個重要業務,在這個過程中,他積累了大量 NoSQL 數據庫知識與經驗。
 
2017 年,唐聰開始接觸 Docker 和 Kubernetes,並通過 Kubernetes 解決大規模 Redis 集羣的治理問題,提升服務的可用性、降低運維成本。而後他轉崗到騰訊雲,負責 Kubernetes 集羣存儲 etcd 治理工作。
 
現在他是騰訊雲 etcd 負責人,主導構建的騰訊雲原生 etcd 平臺,成功解決了集羣大規模增長過程中各類 etcd 穩定性問題,支撐了萬級 Kubernetes 和 etcd 集羣。目前,etcd 作爲騰訊衆多產品的基礎設施,服務用戶已達數億。
 
他把專欄分爲兩大模塊,基礎篇和實踐篇。
 
基礎篇可以幫你建立對 etcd 的整體認知,搞懂讀寫請求、各個核心特性背後的原理。此外,基礎篇的學習也是一箇中小型分佈式存儲系統從 0 到 1 實現的案例解讀,你不僅會收穫 etcd,還有分佈式存儲系統構建的理論知識,爲下一步進階打好基礎。
 
 
在實踐篇中,唐聰爲你解讀了 etcd 實際使用過程中可能會出現的各種典型問題,和各類複雜 etcd 問題的解決方案
 
此外,他還分享了 etcd 在Kubernetes、Apache APISIX、分佈式鎖等場景中的應用,爲你梳理最佳實踐,讓你在業務中更好地使用 etcd,進而對 Kubernetes、Apache APISIX 等原理有更深層次的理解。
 
更多實踐篇內容,可以參考下面的思維導圖:
 
另外,我覺得這個課最寶貴的一點,是他利用拆解法,爲你制定了大、中、小三級目標,讓你每節課都有收穫,通過每個小目標的實現,最終達成個人能力的提升,徹底掌握 etcd。
 
連專欄裏的留言質量都很高,不僅會解答大家的問題,讀者也會互相討論切磋,光看評論區都能學到不少,口碑自然不錯,截了一些供你參考:
 
下面是課程目錄:
 

老規矩,給大家申請了粉絲專屬優

專欄即將  漲價至¥129
秒殺+口令 「studyetcd」
到手半價¥69,相當於 半價入手
口令僅 「前 50 人」 有效!
 

  掃碼免費試讀
 
我們在工作中常常“讓專業的人做專業的事”,同理,學習某項技能,跟着專攻它的人,進步纔會最快。聰哥在 etcd 領域的建樹數一數二,所以他整理出來的方法和經驗,絕對值得一看。
 
點擊「閱讀原文
結算使用口令「 studyetcd
立省 ¥60,半價秒殺,僅限「前 50 人」有效。

本文分享自微信公衆號 - Go語言進階學習(gh_dced3d6523fb)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章