zoukankan      html  css  js  c++  java
  • kafka为什么吞吐量高,怎样保证高可用

    1:kafka可以通过多个broker形成集群,来存储大量数据;而且便于横向扩展。

    2:kafka信息存储核心的broker,通过partition的segment只关心信息的存储,而生产者只负责向leader角色的partition提交数据,而消费者pull数据的时候自己通过zk存储offset信息,严格讲broker基本只关心存储数据;

    3:kafka的ack策略也是提高吞吐量的手段:

      1)生产者的acks如果设置0则只向leader发送数据,并不关心leader数据是否存储成功;

      2)如果设置为1在向leader发送数据后需要等待leader存储成功后才会认为一次操作成功;

      3)如果设置为-1在向leader发送数据后不但需要等待leader存储成功,还要等待各个follow角色的partition,从leader拉取数据后存储完成才算一次完整的ack,当然这种情况会降低kafka的吞吐量;

         而且follow从leader拉去后存储完成才能将本地的(segmentLog)LEO标记移动到最后,如果follow未同步完成kafka为了保证数据一致性“HW高水位线”也只能保证到一个较低水平;

    高可用:

    ps:而且kafka底层是通过NIO顺序写数据,效率也是非常高的

  • 相关阅读:
    软件工程个人作业01
    阅读计划及浅读问题
    引言作业1
    多态和异常分析课后
    大道至简七八章阅读
    接口与继承 课后实践
    构建执法阅读笔记02
    冲刺第五天
    学习进度条七
    冲刺第四天
  • 原文地址:https://www.cnblogs.com/zzq-include/p/11025725.html
Copyright © 2011-2022 走看看