資料介紹
zetcd是一款架在ZooKeeper與etcd之間的代理程序,它可以將ZooKeeper客戶端的請求消息轉換成etcd要求的格式,并轉發給etcd,然后將響應消息轉換后返回給客戶端。本文介紹了zetcd的使用方法、工作原理以及性能評測。以下是譯文。
分布式系統需要依賴分布式一致性來協調工作。通常情況下,提供分布式一致性擔保信息的系統會接收到按順序投遞過來的消息,這樣就不會產生腦裂沖突(split-brain conflicts,譯者注:本來一個大腦的兩個半球是互相配合的,但是現在分裂變成了兩個獨立的大腦,并且都認為對方已死。此時,雙方都會去嘗試接管集群資源,這樣就可能會造成沖突,產生嚴重的后果)。這類系統的用途是顯而易見的。像chubby、ZooKeeper、etcd、consul這些項目,盡管它們的原理和協議各不相同,但它們都側重于為分布式一致性提供類似的基本鍵值原語。為了讓etcd成為分布式系統中最具吸引力的項目,etcd團隊開發了一款新的代理服務器程序:zetcd,使用這款軟件,etcd集群無需修改即可處理ZooKeeper客戶端的請求。
ZooKeeper是這方面第一個流行起來的開源軟件,它是很多分布式系統的首選后端軟件。這些系統理論上也可以搭配etcd一起運行,但是由于歷史原因,實際上根本實現不了。etcd集群不支持ZooKeeper,因為etcd的數據模型和客戶端協議與ZooKeeper應用程序不兼容。ZooKeeper應用程序也不是原生的支持etcd;如果系統已經在穩定運行了,那么沒有必要去為了適應新的后端軟件而讓系統更加復雜。幸運的是,etcd的第三版API相當的牛逼,它可以通過一個普通的代理來模擬ZooKeeper客戶端的數據模型,這就是zetcd,一個由etcd團隊開發的新的開源項目。今天,zetcd發布了第一個測試版,v0.0.1版,這為在生產系統中管理和部署zetcd打下了基礎。
zetcd代理位于etcd集群的前端,它提供了一個模擬ZooKeeper客戶端的端口,讓原版的ZooKeeper應用程序可以運行在etcd上。其基本原理是,zetcd將ZooKeeper客戶端的請求轉換為適合于etcd數據模型和API要求的消息,將發送給etcd,然后將etcd的響應消息轉換后返回給客戶端。該代理的性能可以與ZooKeeper相媲美,利用etcd的特性和工具可以簡化ZooKeeper集群管理。下文將展示zetcd的使用方法和工作原理,并分享一些性能評測數據。
zetcd入門
讓zetcd運行起來需要三樣東西:一個Go編譯器、一個能夠獲取源代碼的互聯網連接,以及一個可以運行etcd的系統。下面的示例展示了如何用源代碼編譯生成zetcd,并對它運行ZooKeeper命令。當我們需要部署正式環境的時候,我們并不建議從開發分支來獲取源代碼并編譯etcd和zetcd,但是如果只是試用一下的話,這是最簡單的方法。
首先,獲取源代碼并編譯etcd和zetcd的二進制文件:
接下來,運行etcd,并將zetcd連接到etcd的客戶端接入點:
試用zetcd,啟動查看并創建一個key:
這個例子展示了在一個獨立的etcd實例上部署了一個zetcd代理層:
一個簡單的zetcd服務器拓撲
那么這個zetcd代理層是做什么的呢?
ZooKeeper接入etcd3
在底層,zetcd將ZooKeeper的數據模型轉換為適合的etcd API的數據。對于key的查找,zetcd將ZooKeeper的分級目錄轉換為etcd的普通二進制keyspace。對于元數據的管理,zetcd利用事務內存安全地和原子地將ZooKeeper znode信息更新到etcd后端。
ZooKeeper是按目錄列出所有的key(getChildren),而etcd是按區間(Range)列出所有的key。下圖說明了zetcd是如何在etcd中對key進行編碼以便可以快速地列出目錄中的key。所有zetcd的key都有一個包括目錄深度的前綴(例如,“/”和“/abc/”分別具有0和1的深度)。要列出一個目錄,zetcd會給出前綴范圍,這個前綴以目錄的深度和路徑來匹配相應的key(例如,前綴范圍[“/zk/key/002/abc/”,“/zk/key/002/abc0”]用于列出/abc/)。這里的目錄深度是為了限制目錄本身被當作key。如果zetcd將路徑當作是沒有深度的前綴,那么目錄下的所有key,而不是只有其直接子節點,會由etcd返回并被代理拋棄。
- 電路常識性入門概念分享 0次下載
- 《Python編程入門》.pdf 0次下載
- MATLAB使用教程-初步入門大全.PPT 0次下載
- Wireshark從入門到精通之網絡抓包協議分析必備 9次下載
- GitHub入門與實踐 0次下載
- Verilog HDL入門教程.pdf 115次下載
- 電子電路從入門到精通電子版下載 0次下載
- Kicad5.1.5中文入門教程電子版下載 0次下載
- LatticeCrossLinkNX軟件開發入門文件 1次下載
- 松下PLC入門基礎培訓課件下載 125次下載
- MATLAB入門教程電子版下載 0次下載
- 深度學習入門:基于Python的理論與實現電子書 30次下載
- PSIM仿真入門學習-課件下載 186次下載
- Linux操作系統下C語言編程入門.pdf 95次下載
- PowerPcb入門多媒體教程 0次下載
- 講解MATLAB/Simulink HDL使用入門 1040次閱讀
- OpenHarmony入門攻略:環境搭建 1973次閱讀
- Vitis IDE Git集成快速入門 869次閱讀
- FPGA的入門基礎知識詳細說明 9217次閱讀
- Python的Anaconda入門指南 2496次閱讀
- dfrobotmicro:bit造物粒子入門套件簡介 4054次閱讀
- fireflyFace-RK3399主板Android入門 1421次閱讀
- 51、stm32單片機入門的一些經驗 3181次閱讀
- 什么是DCS系統?DCS系統基礎知識入門 4.4w次閱讀
- Java入門的大致學習路線 4403次閱讀
- PLC入門需要多久_PLC入門需要看哪些書籍 1.7w次閱讀
- c語言入門書籍推薦 4.6w次閱讀
- java入門經典書籍推薦 1.9w次閱讀
- MySQL 超級入門教程以及MySQL 資源大全的分享 6898次閱讀
- FPGA快速入門經驗談(part2) 991次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1491次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 4次下載 | 免費
- 8基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537793次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多