資料介紹
zetcd是一款架在ZooKeeper與etcd之間的代理程序,它可以將ZooKeeper客戶端的請(qǐng)求消息轉(zhuǎn)換成etcd要求的格式,并轉(zhuǎn)發(fā)給etcd,然后將響應(yīng)消息轉(zhuǎn)換后返回給客戶端。本文介紹了zetcd的使用方法、工作原理以及性能評(píng)測(cè)。以下是譯文。
分布式系統(tǒng)需要依賴(lài)分布式一致性來(lái)協(xié)調(diào)工作。通常情況下,提供分布式一致性擔(dān)保信息的系統(tǒng)會(huì)接收到按順序投遞過(guò)來(lái)的消息,這樣就不會(huì)產(chǎn)生腦裂沖突(split-brain conflicts,譯者注:本來(lái)一個(gè)大腦的兩個(gè)半球是互相配合的,但是現(xiàn)在分裂變成了兩個(gè)獨(dú)立的大腦,并且都認(rèn)為對(duì)方已死。此時(shí),雙方都會(huì)去嘗試接管集群資源,這樣就可能會(huì)造成沖突,產(chǎn)生嚴(yán)重的后果)。這類(lèi)系統(tǒng)的用途是顯而易見(jiàn)的。像chubby、ZooKeeper、etcd、consul這些項(xiàng)目,盡管它們的原理和協(xié)議各不相同,但它們都側(cè)重于為分布式一致性提供類(lèi)似的基本鍵值原語(yǔ)。為了讓etcd成為分布式系統(tǒng)中最具吸引力的項(xiàng)目,etcd團(tuán)隊(duì)開(kāi)發(fā)了一款新的代理服務(wù)器程序:zetcd,使用這款軟件,etcd集群無(wú)需修改即可處理ZooKeeper客戶端的請(qǐng)求。
ZooKeeper是這方面第一個(gè)流行起來(lái)的開(kāi)源軟件,它是很多分布式系統(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)行了,那么沒(méi)有必要去為了適應(yīng)新的后端軟件而讓系統(tǒng)更加復(fù)雜。幸運(yùn)的是,etcd的第三版API相當(dāng)?shù)呐1疲梢酝ㄟ^(guò)一個(gè)普通的代理來(lái)模擬ZooKeeper客戶端的數(shù)據(jù)模型,這就是zetcd,一個(gè)由etcd團(tuán)隊(duì)開(kāi)發(fā)的新的開(kāi)源項(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入門(mén)
讓zetcd運(yùn)行起來(lái)需要三樣?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í)候,我們并不建議從開(kāi)發(fā)分支來(lái)獲取源代碼并編譯etcd和zetcd,但是如果只是試用一下的話,這是最簡(jiǎn)單的方法。
首先,獲取源代碼并編譯etcd和zetcd的二進(jìn)制文件:
接下來(lái),運(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。下圖說(shuō)明了zetcd是如何在etcd中對(duì)key進(jìn)行編碼以便可以快速地列出目錄中的key。所有zetcd的key都有一個(gè)包括目錄深度的前綴(例如,“/”和“/abc/”分別具有0和1的深度)。要列出一個(gè)目錄,zetcd會(huì)給出前綴范圍,這個(gè)前綴以目錄的深度和路徑來(lái)匹配相應(yīng)的key(例如,前綴范圍[“/zk/key/002/abc/”,“/zk/key/002/abc0”]用于列出/abc/)。這里的目錄深度是為了限制目錄本身被當(dāng)作key。如果zetcd將路徑當(dāng)作是沒(méi)有深度的前綴,那么目錄下的所有key,而不是只有其直接子節(jié)點(diǎn),會(huì)由etcd返回并被代理拋棄。
- 電路常識(shí)性入門(mén)概念分享 0次下載
- 《Python編程入門(mén)》.pdf 0次下載
- MATLAB使用教程-初步入門(mén)大全.PPT 0次下載
- Wireshark從入門(mén)到精通之網(wǎng)絡(luò)抓包協(xié)議分析必備 9次下載
- GitHub入門(mén)與實(shí)踐 0次下載
- Verilog HDL入門(mén)教程.pdf 117次下載
- 電子電路從入門(mén)到精通電子版下載 0次下載
- Kicad5.1.5中文入門(mén)教程電子版下載 0次下載
- LatticeCrossLinkNX軟件開(kāi)發(fā)入門(mén)文件 1次下載
- 松下PLC入門(mén)基礎(chǔ)培訓(xùn)課件下載 129次下載
- MATLAB入門(mén)教程電子版下載 0次下載
- 深度學(xué)習(xí)入門(mén):基于Python的理論與實(shí)現(xiàn)電子書(shū) 32次下載
- PSIM仿真入門(mén)學(xué)習(xí)-課件下載 188次下載
- Linux操作系統(tǒng)下C語(yǔ)言編程入門(mén).pdf 96次下載
- PowerPcb入門(mén)多媒體教程 0次下載
- 講解MATLAB/Simulink HDL使用入門(mén) 1417次閱讀
- OpenHarmony入門(mén)攻略:環(huán)境搭建 2329次閱讀
- Vitis IDE Git集成快速入門(mén) 1178次閱讀
- FPGA的入門(mén)基礎(chǔ)知識(shí)詳細(xì)說(shuō)明 9600次閱讀
- Python的Anaconda入門(mén)指南 2674次閱讀
- dfrobotmicro:bit造物粒子入門(mén)套件簡(jiǎn)介 4407次閱讀
- fireflyFace-RK3399主板Android入門(mén) 1527次閱讀
- 51、stm32單片機(jī)入門(mén)的一些經(jīng)驗(yàn) 3322次閱讀
- 什么是DCS系統(tǒng)?DCS系統(tǒng)基礎(chǔ)知識(shí)入門(mén) 4.6w次閱讀
- Java入門(mén)的大致學(xué)習(xí)路線 4533次閱讀
- PLC入門(mén)需要多久_PLC入門(mén)需要看哪些書(shū)籍 1.7w次閱讀
- c語(yǔ)言入門(mén)書(shū)籍推薦 4.9w次閱讀
- java入門(mén)經(jīng)典書(shū)籍推薦 1.9w次閱讀
- MySQL 超級(jí)入門(mén)教程以及MySQL 資源大全的分享 7047次閱讀
- FPGA快速入門(mén)經(jīng)驗(yàn)談(part2) 1032次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1491次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
- 4.28 MB | 18次下載 | 4 積分
- 5開(kāi)關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費(fèi)
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機(jī)和 SG3525的程控開(kāi)關(guān)電源設(shè)計(jì)
- 0.23 MB | 4次下載 | 免費(fèi)
- 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專(zhuān)業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論