資料介紹
zetcd是一款架在ZooKeeper與etcd之間的代理程序,它可以將ZooKeeper客戶端的請(qǐng)求消息轉(zhuǎn)換成etcd要求的格式,并轉(zhuǎn)發(fā)給etcd,然后將響應(yīng)消息轉(zhuǎn)換后返回給客戶端。本文介紹了zetcd的使用方法、工作原理以及性能評(píng)測(cè)。以下是譯文。
分布式系統(tǒng)需要依賴分布式一致性來協(xié)調(diào)工作。通常情況下,提供分布式一致性擔(dān)保信息的系統(tǒng)會(huì)接收到按順序投遞過來的消息,這樣就不會(huì)產(chǎn)生腦裂沖突(split-brain conflicts,譯者注:本來一個(gè)大腦的兩個(gè)半球是互相配合的,但是現(xiàn)在分裂變成了兩個(gè)獨(dú)立的大腦,并且都認(rèn)為對(duì)方已死。此時(shí),雙方都會(huì)去嘗試接管集群資源,這樣就可能會(huì)造成沖突,產(chǎn)生嚴(yán)重的后果)。這類系統(tǒng)的用途是顯而易見的。像chubby、ZooKeeper、etcd、consul這些項(xiàng)目,盡管它們的原理和協(xié)議各不相同,但它們都側(cè)重于為分布式一致性提供類似的基本鍵值原語。為了讓etcd成為分布式系統(tǒng)中最具吸引力的項(xiàng)目,etcd團(tuán)隊(duì)開發(fā)了一款新的代理服務(wù)器程序:zetcd,使用這款軟件,etcd集群無需修改即可處理ZooKeeper客戶端的請(qǐng)求。
ZooKeeper是這方面第一個(gè)流行起來的開源軟件,它是很多分布式系統(tǒng)的首選后端軟件。這些系統(tǒng)理論上也可以搭配etcd一起運(yùn)行,但是由于歷史原因,實(shí)際上根本實(shí)現(xiàn)不了。etcd集群不支持ZooKeeper,因?yàn)閑tcd的數(shù)據(jù)模型和客戶端協(xié)議與ZooKeeper應(yīng)用程序不兼容。ZooKeeper應(yīng)用程序也不是原生的支持etcd;如果系統(tǒng)已經(jīng)在穩(wěn)定運(yùn)行了,那么沒有必要去為了適應(yīng)新的后端軟件而讓系統(tǒng)更加復(fù)雜。幸運(yùn)的是,etcd的第三版API相當(dāng)?shù)呐1?,它可以通過一個(gè)普通的代理來模擬ZooKeeper客戶端的數(shù)據(jù)模型,這就是zetcd,一個(gè)由etcd團(tuán)隊(duì)開發(fā)的新的開源項(xiàng)目。今天,zetcd發(fā)布了第一個(gè)測(cè)試版,v0.0.1版,這為在生產(chǎn)系統(tǒng)中管理和部署zetcd打下了基礎(chǔ)。
zetcd代理位于etcd集群的前端,它提供了一個(gè)模擬ZooKeeper客戶端的端口,讓原版的ZooKeeper應(yīng)用程序可以運(yùn)行在etcd上。其基本原理是,zetcd將ZooKeeper客戶端的請(qǐng)求轉(zhuǎn)換為適合于etcd數(shù)據(jù)模型和API要求的消息,將發(fā)送給etcd,然后將etcd的響應(yīng)消息轉(zhuǎn)換后返回給客戶端。該代理的性能可以與ZooKeeper相媲美,利用etcd的特性和工具可以簡(jiǎn)化ZooKeeper集群管理。下文將展示zetcd的使用方法和工作原理,并分享一些性能評(píng)測(cè)數(shù)據(jù)。
zetcd入門
讓zetcd運(yùn)行起來需要三樣?xùn)|西:一個(gè)Go編譯器、一個(gè)能夠獲取源代碼的互聯(lián)網(wǎng)連接,以及一個(gè)可以運(yùn)行etcd的系統(tǒng)。下面的示例展示了如何用源代碼編譯生成zetcd,并對(duì)它運(yùn)行ZooKeeper命令。當(dāng)我們需要部署正式環(huán)境的時(shí)候,我們并不建議從開發(fā)分支來獲取源代碼并編譯etcd和zetcd,但是如果只是試用一下的話,這是最簡(jiǎn)單的方法。
首先,獲取源代碼并編譯etcd和zetcd的二進(jìn)制文件:
接下來,運(yùn)行etcd,并將zetcd連接到etcd的客戶端接入點(diǎn):
試用zetcd,啟動(dòng)查看并創(chuàng)建一個(gè)key:
這個(gè)例子展示了在一個(gè)獨(dú)立的etcd實(shí)例上部署了一個(gè)zetcd代理層:

一個(gè)簡(jiǎn)單的zetcd服務(wù)器拓?fù)?/p>
那么這個(gè)zetcd代理層是做什么的呢?
ZooKeeper接入etcd3
在底層,zetcd將ZooKeeper的數(shù)據(jù)模型轉(zhuǎn)換為適合的etcd API的數(shù)據(jù)。對(duì)于key的查找,zetcd將ZooKeeper的分級(jí)目錄轉(zhuǎn)換為etcd的普通二進(jìn)制keyspace。對(duì)于元數(shù)據(jù)的管理,zetcd利用事務(wù)內(nèi)存安全地和原子地將ZooKeeper znode信息更新到etcd后端。
ZooKeeper是按目錄列出所有的key(getChildren),而etcd是按區(qū)間(Range)列出所有的key。下圖說明了zetcd是如何在etcd中對(duì)key進(jìn)行編碼以便可以快速地列出目錄中的key。所有zetcd的key都有一個(gè)包括目錄深度的前綴(例如,“/”和“/abc/”分別具有0和1的深度)。要列出一個(gè)目錄,zetcd會(huì)給出前綴范圍,這個(gè)前綴以目錄的深度和路徑來匹配相應(yīng)的key(例如,前綴范圍[“/zk/key/002/abc/”,“/zk/key/002/abc0”]用于列出/abc/)。這里的目錄深度是為了限制目錄本身被當(dāng)作key。如果zetcd將路徑當(dāng)作是沒有深度的前綴,那么目錄下的所有key,而不是只有其直接子節(jié)點(diǎn),會(huì)由etcd返回并被代理拋棄。
掃碼添加小助手
加入工程師交流群
- 電路常識(shí)性入門概念分享 0次下載
- 《Python編程入門》.pdf 0次下載
- MATLAB使用教程-初步入門大全.PPT 0次下載
- Wireshark從入門到精通之網(wǎng)絡(luò)抓包協(xié)議分析必備 12次下載
- GitHub入門與實(shí)踐 0次下載
- Verilog HDL入門教程.pdf 120次下載
- 電子電路從入門到精通電子版下載 0次下載
- Kicad5.1.5中文入門教程電子版下載 0次下載
- LatticeCrossLinkNX軟件開發(fā)入門文件 1次下載
- 松下PLC入門基礎(chǔ)培訓(xùn)課件下載 138次下載
- MATLAB入門教程電子版下載 0次下載
- 深度學(xué)習(xí)入門:基于Python的理論與實(shí)現(xiàn)電子書 35次下載
- PSIM仿真入門學(xué)習(xí)-課件下載 192次下載
- Linux操作系統(tǒng)下C語言編程入門.pdf 98次下載
- PowerPcb入門多媒體教程 0次下載
- 講解MATLAB/Simulink HDL使用入門 2.7k次閱讀
- OpenHarmony入門攻略:環(huán)境搭建 3.8k次閱讀
- Vitis IDE Git集成快速入門 1.9k次閱讀
- FPGA的入門基礎(chǔ)知識(shí)詳細(xì)說明 1.1w次閱讀
- Python的Anaconda入門指南 3.2k次閱讀
- dfrobotmicro:bit造物粒子入門套件簡(jiǎn)介 5.5k次閱讀
- fireflyFace-RK3399主板Android入門 2k次閱讀
- 51、stm32單片機(jī)入門的一些經(jīng)驗(yàn) 3.8k次閱讀
- 什么是DCS系統(tǒng)?DCS系統(tǒng)基礎(chǔ)知識(shí)入門 4.8w次閱讀
- Java入門的大致學(xué)習(xí)路線 5k次閱讀
- PLC入門需要多久_PLC入門需要看哪些書籍 1.9w次閱讀
- c語言入門書籍推薦 8.7w次閱讀
- java入門經(jīng)典書籍推薦 2w次閱讀
- MySQL 超級(jí)入門教程以及MySQL 資源大全的分享 7.5k次閱讀
- FPGA快速入門經(jīng)驗(yàn)談(part2) 1.2k次閱讀
下載排行
本周
- 1MDD品牌三極管MMBT3906數(shù)據(jù)手冊(cè)
- 2.33 MB | 次下載 | 免費(fèi)
- 2MDD品牌三極管S9012數(shù)據(jù)手冊(cè)
- 2.62 MB | 次下載 | 免費(fèi)
- 3聯(lián)想flex2-14D/15D說明書
- 4.92 MB | 次下載 | 免費(fèi)
- 4收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊(cè)
- 2.50 MB | 次下載 | 免費(fèi)
- 524Pin Type-C連接器設(shè)計(jì)報(bào)告
- 1.06 MB | 次下載 | 免費(fèi)
- 6新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 次下載 | 免費(fèi)
- 7MS1000TA 超聲波測(cè)量模擬前端芯片技術(shù)手冊(cè)
- 0.60 MB | 次下載 | 免費(fèi)
- 8MS1022高精度時(shí)間測(cè)量(TDC)電路數(shù)據(jù)手冊(cè)
- 1.81 MB | 次下載 | 免費(fèi)
本月
- 1愛華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論