資料介紹
zetcd是一款架在ZooKeeper與etcd之間的代理程序,它可以將ZooKeeper客戶端的請求消息轉(zhuǎn)換成etcd要求的格式,并轉(zhuǎn)發(fā)給etcd,然后將響應(yīng)消息轉(zhuǎn)換后返回給客戶端。本文介紹了zetcd的使用方法、工作原理以及性能評測。以下是譯文。
分布式系統(tǒng)需要依賴分布式一致性來協(xié)調(diào)工作。通常情況下,提供分布式一致性擔(dān)保信息的系統(tǒng)會接收到按順序投遞過來的消息,這樣就不會產(chǎn)生腦裂沖突(split-brain conflicts,譯者注:本來一個大腦的兩個半球是互相配合的,但是現(xiàn)在分裂變成了兩個獨(dú)立的大腦,并且都認(rèn)為對方已死。此時,雙方都會去嘗試接管集群資源,這樣就可能會造成沖突,產(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客戶端的請求。
ZooKeeper是這方面第一個流行起來的開源軟件,它是很多分布式系統(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?,它可以通過一個普通的代理來模擬ZooKeeper客戶端的數(shù)據(jù)模型,這就是zetcd,一個由etcd團(tuán)隊(duì)開發(fā)的新的開源項(xiàng)目。今天,zetcd發(fā)布了第一個測試版,v0.0.1版,這為在生產(chǎn)系統(tǒng)中管理和部署zetcd打下了基礎(chǔ)。
zetcd代理位于etcd集群的前端,它提供了一個模擬ZooKeeper客戶端的端口,讓原版的ZooKeeper應(yīng)用程序可以運(yùn)行在etcd上。其基本原理是,zetcd將ZooKeeper客戶端的請求轉(zhuǎn)換為適合于etcd數(shù)據(jù)模型和API要求的消息,將發(fā)送給etcd,然后將etcd的響應(yīng)消息轉(zhuǎn)換后返回給客戶端。該代理的性能可以與ZooKeeper相媲美,利用etcd的特性和工具可以簡化ZooKeeper集群管理。下文將展示zetcd的使用方法和工作原理,并分享一些性能評測數(shù)據(jù)。
zetcd入門
讓zetcd運(yùn)行起來需要三樣?xùn)|西:一個Go編譯器、一個能夠獲取源代碼的互聯(lián)網(wǎng)連接,以及一個可以運(yùn)行etcd的系統(tǒng)。下面的示例展示了如何用源代碼編譯生成zetcd,并對它運(yùn)行ZooKeeper命令。當(dāng)我們需要部署正式環(huán)境的時候,我們并不建議從開發(fā)分支來獲取源代碼并編譯etcd和zetcd,但是如果只是試用一下的話,這是最簡單的方法。
首先,獲取源代碼并編譯etcd和zetcd的二進(jìn)制文件:
接下來,運(yùn)行etcd,并將zetcd連接到etcd的客戶端接入點(diǎn):
試用zetcd,啟動查看并創(chuàng)建一個key:
這個例子展示了在一個獨(dú)立的etcd實(shí)例上部署了一個zetcd代理層:
一個簡單的zetcd服務(wù)器拓?fù)?/p>
那么這個zetcd代理層是做什么的呢?
ZooKeeper接入etcd3
在底層,zetcd將ZooKeeper的數(shù)據(jù)模型轉(zhuǎn)換為適合的etcd API的數(shù)據(jù)。對于key的查找,zetcd將ZooKeeper的分級目錄轉(zhuǎn)換為etcd的普通二進(jìn)制keyspace。對于元數(shù)據(jù)的管理,zetcd利用事務(wù)內(nèi)存安全地和原子地將ZooKeeper znode信息更新到etcd后端。
ZooKeeper是按目錄列出所有的key(getChildren),而etcd是按區(qū)間(Range)列出所有的key。下圖說明了zetcd是如何在etcd中對key進(jìn)行編碼以便可以快速地列出目錄中的key。所有zetcd的key都有一個包括目錄深度的前綴(例如,“/”和“/abc/”分別具有0和1的深度)。要列出一個目錄,zetcd會給出前綴范圍,這個前綴以目錄的深度和路徑來匹配相應(yīng)的key(例如,前綴范圍[“/zk/key/002/abc/”,“/zk/key/002/abc0”]用于列出/abc/)。這里的目錄深度是為了限制目錄本身被當(dāng)作key。如果zetcd將路徑當(dāng)作是沒有深度的前綴,那么目錄下的所有key,而不是只有其直接子節(jié)點(diǎn),會由etcd返回并被代理拋棄。
- 電路常識性入門概念分享 0次下載
- 《Python編程入門》.pdf 0次下載
- MATLAB使用教程-初步入門大全.PPT 0次下載
- Wireshark從入門到精通之網(wǎng)絡(luò)抓包協(xié)議分析必備 9次下載
- GitHub入門與實(shí)踐 0次下載
- Verilog HDL入門教程.pdf 117次下載
- 電子電路從入門到精通電子版下載 0次下載
- Kicad5.1.5中文入門教程電子版下載 0次下載
- LatticeCrossLinkNX軟件開發(fā)入門文件 1次下載
- 松下PLC入門基礎(chǔ)培訓(xùn)課件下載 129次下載
- MATLAB入門教程電子版下載 0次下載
- 深度學(xué)習(xí)入門:基于Python的理論與實(shí)現(xiàn)電子書 32次下載
- PSIM仿真入門學(xué)習(xí)-課件下載 188次下載
- Linux操作系統(tǒng)下C語言編程入門.pdf 96次下載
- PowerPcb入門多媒體教程 0次下載
- 講解MATLAB/Simulink HDL使用入門 1417次閱讀
- OpenHarmony入門攻略:環(huán)境搭建 2329次閱讀
- Vitis IDE Git集成快速入門 1178次閱讀
- FPGA的入門基礎(chǔ)知識詳細(xì)說明 9600次閱讀
- Python的Anaconda入門指南 2674次閱讀
- dfrobotmicro:bit造物粒子入門套件簡介 4407次閱讀
- fireflyFace-RK3399主板Android入門 1527次閱讀
- 51、stm32單片機(jī)入門的一些經(jīng)驗(yàn) 3322次閱讀
- 什么是DCS系統(tǒng)?DCS系統(tǒng)基礎(chǔ)知識入門 4.6w次閱讀
- Java入門的大致學(xué)習(xí)路線 4533次閱讀
- PLC入門需要多久_PLC入門需要看哪些書籍 1.7w次閱讀
- c語言入門書籍推薦 4.9w次閱讀
- java入門經(jīng)典書籍推薦 1.9w次閱讀
- MySQL 超級入門教程以及MySQL 資源大全的分享 7047次閱讀
- FPGA快速入門經(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筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費(fèi)
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機(jī)和 SG3525的程控開關(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 專業(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開關(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é)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評論