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
          主站蜘蛛池模板: 松阳县| 阿鲁科尔沁旗| 佳木斯市| 松桃| 博白县| 确山县| 中山市| 青河县| 日土县| 台江县| 梁河县| 霍邱县| 禹城市| 台前县| 屯留县| 元谋县| 宁陵县| 房山区| 梧州市| 高邑县| 和平县| 乌拉特中旗| 延安市| 休宁县| 鄂州市| 香格里拉县| 平舆县| 兴仁县| 兴义市| 甘德县| 玛沁县| 门源| 乌鲁木齐县| 清水河县| 德清县| 泽州县| 广宗县| 延长县| 琼海市| 张家港市| 浮山县|