curator是乙個非常流行的zookeeper開源客戶端,是netflix公司開源的一套zookeeper客戶端框架,作者是jordan zimmerman。它解決了很多zookeeper客戶端非常底層的細節開發工作,包括連線重連、反覆註冊watcher和nodeexist***ception異常等,目前已經成為apache的頂級專案,是全世界範圍內使用最廣泛的zookeeper客戶端之一。
在分布式系統中,經常會遇到這樣的場景:對於乙個複雜的任務,僅需要從集群中選舉出一台進行處理即可。諸如此類的分布式問題,我們統稱為「master選舉」。
以上內容摘抄自《從paxos到zookeeper分布式一致性原理與實踐》。
這本書上有乙個master選舉的**示例,但我覺得沒有這篇部落格上 寫的好,摘抄如下:
public class recipesmasterselect
@override
public void statechanged(curatorframework client, connectionstate newstate)
});leaderselector.autorequeue();
leaderselector.start();
selectors.add(leaderselector);
}thread.sleep(integer.max_value);
} catch (exception e) finally
for(leaderselector selector : selectors)
} }private static curatorframework getclient()
}
我引入的版本是:
org.apache.curator
curator-framework
4.0.0
org.apache.curator
curator-recipes
4.0.0
控制台上將會列印出選舉結果,太簡單方便了哈:
client#8:i am leader.
client#1:i am leader.
client#2:i am leader.
client#0:i am leader.
client#7:i am leader.
client#6:i am leader.
client#3:i am leader.
client#4:i am leader.
client#9:i am leader.
client#5:i am leader.
client#8:i am leader.
client#1:i am leader.
zookeeper學習筆記
zookeeper簡介 zookeeper是乙個為分布式應用程式提供高效能協調服務的工具集合,是著名的開源框架 hadoop的子專案,它可以應用在一些需要提供統一協調服務的任務中,例如命名 配置管理 同步和組服務等,而在分布式快取設計中,它被作為乙個協調分布式環境中各快取伺服器之間共享狀態資料的基礎...
zookeeper學習筆記一
源自google的chubby yahoo的實現,注就了我們有機會看到如此優秀的協作工具 zk.當我在看分布式系統的書籍時,同時在學習zk,可以進行比較分析,很好!感覺這東西的原理或多或少已經在早前某些專案上接觸到,只是沒有那麼具體和靈活。比如開發中遇到的索引同步問題,loadbalance切換se...
ZooKeeper學習筆記(二)
2.將解壓後的zookeeper複製出2份,將這三分分別命名 如 z1,z2,z3 ticktime 2000 initlimit 10 synclimit 5 datadir data clientport 2181 server.1 127.0.0.1 2222 2223 server.2 12...