jinfeng_wang

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

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

          1. 介紹

          不得不說ZK的出現是解決分布式一致性問題的一道曙光。但是事務都是發(fā)展的,即使是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機制。保持會話需要不斷續(xù)期TTL。后起之秀如etcd等都已通過grpc改進了TTL。后續(xù)我會專門聊聊etcd

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

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

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

          posted on 2016-12-27 15:49 jinfeng_wang 閱讀(266) 評論(0)  編輯  收藏 所屬分類: 2016-zookeeper
          主站蜘蛛池模板: 惠安县| 宾阳县| 通许县| 麟游县| 蒙山县| 黑河市| 日照市| 乡宁县| 遵义县| 奇台县| 苏尼特左旗| 石景山区| 凤台县| 都昌县| 新乡县| 东平县| 白城市| 阜新市| 伊宁县| 蓝田县| 新龙县| 屏南县| 盐城市| 印江| 宁明县| 德惠市| 花垣县| 安吉县| 岳池县| 安图县| 梧州市| 贺兰县| 绩溪县| 南澳县| 兴义市| 邯郸市| 五台县| 肥东县| 金溪县| 全椒县| 舞钢市|