jinfeng_wang

          G-G-S,D-D-U!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
          http://www.tuicool.com/articles/Z3MjuuE

          1. 介紹

          不得不說ZK的出現是解決分布式一致性問題的一道曙光。但是事務都是發展的,即使是ZK也不是十全十美的。

          今天和小伙伴聊了點ZK的問題。一些ZK使用攻略也希望在此跟大家分享下。

          2. ZK的缺點

          1. 讀寫性能不佳:ZK的讀寫性能測試可以參考 ZooKeeper service latencies under various loads & configurations

          下圖可以看到的是220萬操作,在4核20client上的效果。簡單總結是相同core,增加client整體性能會下降。

          1. 不適合主數據存儲:zk的quorum選舉適用在共享集群配置而不是主數據存儲。因為其吞吐量低,容忍故障所需要的冗余副本比較多
          2. 只容忍(N-1)/2的故障
          3. ZK設計的時候是基于session的,也就是基于TTL機制。保持會話需要不斷續期TTL。后起之秀如etcd等都已通過grpc改進了TTL。后續我會專門聊聊etcd

          3. ZK在實際應用中的問題

          ZK在實際使用中肯能會受到網絡抖動的影響,有時候這些影響對應用會造成“災難”級的傷害。例如發生網絡問題時,ZK集群需要開始選主,選主過程如果持續較長,應用都會拋異常。而且后續可能會出現follower不能及時跟上leader的情況。如果這個過程持續數十分鐘,那么將會導致應用在這個期間內無法提供服務。影響是非常大的。

          以上故事來自小伙伴的真實經歷。但是到底哪些行為會造成ZK異常的選主行為尚沒搞清楚。有誰知道也可以教下我。

          posted on 2016-12-27 15:49 jinfeng_wang 閱讀(253) 評論(0)  編輯  收藏 所屬分類: 2016-zookeeper
          主站蜘蛛池模板: 阳朔县| 礼泉县| 郴州市| 阳西县| 石河子市| 巴林右旗| 淮安市| 南丰县| 浦县| 荆州市| 桑植县| 清丰县| 象山县| 翼城县| 常德市| 陈巴尔虎旗| 临安市| 大埔区| 南召县| 共和县| 苏州市| 富川| 丰顺县| 镇原县| 天门市| 临泽县| 同江市| 乐至县| 苍溪县| 迭部县| 宁河县| 南投市| 罗城| 曲麻莱县| 若羌县| 县级市| 盐源县| 兴文县| 耒阳市| 辽阳市| 大厂|