摘要
這是一個關于ZooKeeper正在使用的全序廣播協(xié)議(Zab)的簡短概述。它在概念上很容易理解,也很容易實現(xiàn),并且提供很高的性能。在這篇文章里,我們會呈現(xiàn)ZooKeeper在Zab上的需求,也會展示這個協(xié)議該如何使用,然后我們總體概述一下這個協(xié)議是如何工作的。
1. 簡介
在雅虎(Yahoo!),我們開發(fā)了一款叫做ZooKeeper[9]的高性能高可用的協(xié)作服務,它允許大規(guī)模的應用群執(zhí)行協(xié)作任務,比如Leader選舉、狀態(tài)傳播和會合(rendezvous)。該服務實現(xiàn)了一個層級的數(shù)據(jù)結點空間——znodes,客戶端可以用它來實現(xiàn)自己的協(xié)作任務。我們已經(jīng)發(fā)現(xiàn)這個服務有很強的性能擴展性,因此它很容易就滿足雅虎的網(wǎng)絡規(guī)模,關鍵任務的產(chǎn)品需求。ZooKeeper放棄了鎖,通過實現(xiàn)了無等待(wait-free)的共享數(shù)據(jù)對象,并保證在這些對象上的操作是有序的,以此來代替鎖。客戶端充分利用這些保障來實現(xiàn)自己的協(xié)作任務。一般而言,一個引出ZooKeeper的主要原因就是,對于應用來說,保持更新操作的有序性比其他特定的協(xié)作技術更加重要,比如阻塞。
集成到ZooKeeper里的是一個全序的廣播協(xié)議:Zab。有序的廣播是實現(xiàn)我們的客戶端保障的關鍵,同時它也需要在每一臺ZooKeeper服務器上維護ZooKeeper的狀態(tài)副本。這些副本通過使用我們的全序廣播協(xié)議來保持一致性,比如使用復制狀態(tài)機[13]。這篇文章主要關注ZooKeeper在該廣播協(xié)議上的需求以及對它實現(xiàn)的一個概述。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26