zoukankan      html  css  js  c++  java
  • kafka与zookeeper读写分析


    kafka的读写都通过leader完成,而zookeeper只有写要通过leader而读可以通过任意follower,我觉得造成这种差异的原因还是在于使用场景。

    kafka的设计目标是实现一个高吞吐的消息处理系统,其一个重要特性就是需要保证数据一致性和有序性。如果所有Replica都可以同时读写,那么在数据同步上的开销就比较大,而只有Leader一个进行读写,其他Replica只需要pull数据,这样可以比较有效的实现数据的一致性和有序性。

    zookeeper设计核心是提供分布式场景下协调服务和服务发现,若设计读写都通过Leader完成,那么整个集群的可伸缩性较差,没法在保证一致性的前提下,通过扩展多个follower来提高集群提供服务的能力。而如果设计为可以通过任意follower都提供读服务,那么就可以通过提供更多的follower满足client读取zookeeper中存储状态的能力。另外,只有Leader可以进行写,类似kafka一样,也是避免同步数据上的困难。

  • 相关阅读:
    2dsphere索引
    geoNear查询 near查询的升级版
    geoWithin查询 多边形查询
    [TJOI2013]最长上升子序列
    「bzoj3956: Count」
    「bzoj3687: 简单题」
    「SDOI2008沙拉公主的困惑」
    郑州Day6
    「Luogu-U18201」分析矿洞
    【[COCI2011-2012#5] POPLOCAVANJE】
  • 原文地址:https://www.cnblogs.com/wangleBlogs/p/9728708.html
Copyright © 2011-2022 走看看