如何精通云原生分布式存儲基石 Etcd?
互聯(lián)網(wǎng)應(yīng)用經(jīng)歷了從早期單一架構(gòu)到垂直架構(gòu),再到分布式架構(gòu)的技術(shù)發(fā)展過程。在業(yè)務(wù)體系不斷發(fā)展變化,用戶體量和性能要求遠(yuǎn)非傳統(tǒng)行業(yè)所能比擬的當(dāng)下,越來越多的公司跨入了分布式、云原生架構(gòu)的行列,分布式架構(gòu)成為主流趨勢。
但分布式架構(gòu)系統(tǒng)面臨著一些與生俱來的問題,比如部署復(fù)雜、響應(yīng)時(shí)間長、運(yùn)維復(fù)雜等,其中最根本的是多個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)共享問題。面對這些問題,你可以選擇自己實(shí)現(xiàn)一個(gè)可靠的共享存儲來同步信息,或者是依賴一個(gè)可靠的共享存儲服務(wù)。
至于可靠的共享存儲服務(wù),etcd是一個(gè)優(yōu)秀的可選項(xiàng)。etcd是一款分布式存儲中間件,使用Go語言編寫,并通過raft一致性算法處理和確保分布式一致性,解決了分布式系統(tǒng)中數(shù)據(jù)一致性的問題。
此外,由于etcd中涉及了數(shù)據(jù)一致性、多版本并發(fā)控制、Watch監(jiān)控、磁盤I/O讀寫等知識點(diǎn),深入學(xué)習(xí)etcd可以幫助我們從開源項(xiàng)目中學(xué)習(xí)底層原理,進(jìn)一步提高分布式架構(gòu)設(shè)計(jì)的能力。
除了分布式架構(gòu)中的應(yīng)用,etcd 還是目前非常熱門的云原生存儲組件,它自2018年底作為孵化項(xiàng)目加入CNCF(云原生計(jì)算基金會),并于2020年11月成功“畢業(yè)”。
etcd 作為云原生架構(gòu)中重要的基礎(chǔ)組件,各個(gè)微服務(wù)之間通過etcd保證調(diào)用的可用性和正確性。其他許多知名項(xiàng)目(包括Kubernetes、CoreDNS和TiKV等)也都依賴etcd來實(shí)現(xiàn)可靠的分布式數(shù)據(jù)存儲,它的成功可見一斑。
掌握云原生存儲的基石組件,這里就不得不推薦一本講 etcd 原理與實(shí)戰(zhàn)的圖書《etcd工作筆記:架構(gòu)分析、優(yōu)化與最佳實(shí)踐》。作者將自己多年的 etcd 相關(guān)的工作經(jīng)驗(yàn)進(jìn)行總結(jié),編寫而成。

如果你對分布式系統(tǒng)的實(shí)現(xiàn)原理,對分布式組件的實(shí)現(xiàn)細(xì)節(jié)不清楚。這本書可以很好的填補(bǔ)分布式系統(tǒng)設(shè)計(jì)的空白和進(jìn)一步拓展你的思維方向。

這本書寫了啥?
通過etcd學(xué)習(xí)分布式組件的“道”,掌握學(xué)習(xí)之道會在后續(xù)的自我提升中發(fā)揮長期價(jià)值。無論在將來的面試還是開發(fā)中,切中分布式系統(tǒng)開發(fā)的要點(diǎn),并將原理和應(yīng)用結(jié)合起來,才能充分體現(xiàn)個(gè)人的核心競爭力。
這本書圍繞etcd組件,從基礎(chǔ)知識點(diǎn)到底層原理全面深入地展開介紹,最后結(jié)合了實(shí)踐的案例。 主要包含如下的三個(gè)模塊。
(1)基礎(chǔ)概念與操作篇
首先淺談云原生架構(gòu)背景,分布式系統(tǒng)中如何保證一致性;接著介紹etcd是一款什么樣的組件、etcd相關(guān)的特性、應(yīng)用場景、部署的方式,還包括了客戶端命令行工具的使用以及etcd通信加密TLS。初步了解etcd的這些基本使用以及核心API,為后面的學(xué)習(xí)打下基礎(chǔ)。
(2)etcd實(shí)現(xiàn)原理與關(guān)鍵技術(shù)篇
介紹etcd的工作方式與內(nèi)部實(shí)現(xiàn)原理,并重點(diǎn)介紹etcd的etcd-raft模塊、WAL日志與快照備份、多版本控制MVCC、backend存儲、事務(wù)實(shí)現(xiàn)、Watch和Lease機(jī)制等,最后梳理etcd Server的啟動流程,以及如何處理客戶端請求。通過這一模塊的學(xué)習(xí),可以幫助我們從原理層面深入了解etcd的工作機(jī)制以及整體架構(gòu),同時(shí)將有助于后續(xù)二次開發(fā)或者排查遇到的問題。
(3)實(shí)踐案例篇
在掌握了etcd相關(guān)知識點(diǎn)的情況下,在應(yīng)用實(shí)踐部分將會帶你學(xué)習(xí)etcd clientv3的具體應(yīng)用,包括如何基于etcd實(shí)現(xiàn)分布式鎖應(yīng)用,以及如何在微服務(wù)中集成 etcd 作為服務(wù)注冊與發(fā)現(xiàn)中心;最后我們會分析在 Kubernetes 中如何基于 etcd 完成容器的調(diào)度。

這本書的作者
朱榮鑫,微服務(wù)方面技術(shù)專家,曾就職于外企和大型互聯(lián)網(wǎng)公司。對云原生、大型分布式系統(tǒng)有多年深入的實(shí)踐經(jīng)驗(yàn)。出版圖書《Go 語言微服務(wù)高并發(fā)實(shí)戰(zhàn)》,線上專欄課程《etcd原理與實(shí)戰(zhàn)》。
劉峰,博士,任職于南京大學(xué),長期從事分布式系統(tǒng),計(jì)算機(jī)網(wǎng)絡(luò)方面的研究,主持和參與多項(xiàng)國家縱向和橫向課題,于阿里云等公司進(jìn)行了多項(xiàng)分布式系統(tǒng)相關(guān)的產(chǎn)研合作。
想直接購書的可以通過上面的二維碼去京東進(jìn)行8.7折優(yōu)惠購買。
