ZooKeeper编程
生活随笔
收集整理的這篇文章主要介紹了
ZooKeeper编程
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ZooKeeper的用途:distributed coordination;maintaining configuration information, naming, providing distributed synchronization, and providing group services.Zookeeper的節(jié)點(diǎn)都是存放在內(nèi)存中的,所以讀寫速度很快。更新日志被記錄到了磁盤中,以便用于恢復(fù)數(shù)據(jù)。在更新內(nèi)在中節(jié)點(diǎn)數(shù)之前,會(huì)先序列化到磁盤中。為避免單點(diǎn)失效,zookeeper的數(shù)據(jù)是在多個(gè)server上留有備份的。不管客戶端連接到的是哪個(gè)server,它看到的數(shù)據(jù)都是一致的。如果client和一個(gè)server的TCP連接失效,它會(huì)嘗試連接另一個(gè)server。眾多server中有一個(gè)是leader。所有的server 都必須知道彼此的存在。zookeeper在讀寫比例為10:1時(shí)性能最佳。每個(gè)znode上data的讀寫都是原子操作。讀是局部性的,即client只需要從與它相連的server上讀取數(shù)據(jù)即可;而client有寫請(qǐng)求的話,與之相連的server會(huì)通知leader,然后leader會(huì)把寫操作分發(fā)給所有server。所以定要比讀慢很多。在建立zookeeper連接時(shí),給定的地址字符串可以是這樣的:"127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002/app/a",以后的所有操作就都是在/app/a下進(jìn)行的。當(dāng)client與一個(gè)server斷連接時(shí)(可能是因?yàn)閟erver失效了),它就收不到任何watches;當(dāng)它與另一個(gè)server建立好連接后,它就會(huì)收到"session expired"通知。ACL不是遞歸的,它只針對(duì)當(dāng)前節(jié)點(diǎn),對(duì)子節(jié)點(diǎn)沒有任何影響。默認(rèn)情況下日志文件和數(shù)據(jù)文件是放在同一個(gè)目錄下的,為縮短延遲提高響應(yīng)性,你可以把日志文件單獨(dú)放在另一個(gè)目錄下。為避免s
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的ZooKeeper编程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Netflix Curator 使用 Z
- 下一篇: Zookeeper分布式集群部署