美文网首页
kafka简述

kafka简述

作者: matthewfly | 来源:发表于2020-11-12 16:52 被阅读0次

    1.kafka组成

    kafka架构由服务集群broker、生产者producer、消费者组成。

    broker:

    broker依靠zookeeper实现服务的注册与发现;接收producer发送的数据;实现消息文件的存储与备份;维护消费者consumer的已消费位置offset记录(0.10.1.X版本之前保存在zk中);协调消费者的负载均衡。

    producer:

    producer直接将数据发送到broker;可以配置异步、同步、批量等发送策略。

    consumer:

    每个consumer有唯一的consumerId,根据分组策略读取消息;读取记录可以配置自动提交、手动提交、批量读取等策略。

    2.消息划分维度

    log_anatomy.png

    kafka消息按topic分组,每个topic一个文件文件目录分开存储,消费者也是按照topic进行消费;topic下面又按partition进行分区。topic可以拥有1个或多个partition,每个partition在topic目录下也是有单独目录存储,且分区内有序,partition之间无序。

    3.producer写消息

    producer写消息时,需要明确给出写到哪个topic,可以给定选取partition的key,此时按给定key的hashcode对分区数取余选择分区,若指定partitionkey则采用默认的分区选取方法。producer比较开放,只要链接到broker均可发送消息。

    4.consumer消费消息

    consumer-groups.png

    每个consumer属于一个消费者组consumergroup,一个consumergroup内的consumer按照partition平均消费数据。若consumergroup内的consumer数量大于partition数量,多出的consumer将没有数据可消费。这样保证了每个分区都有唯一的consumer,方便消费记录的维护。
    当一个consumer退出或加入consumergroup时,broker将重新分配每个consumer对应的partition,维持consumer的负载均衡。

    参考:https://kafka.apachecn.org/intro.html

    相关文章

      网友评论

          本文标题:kafka简述

          本文链接:https://www.haomeiwen.com/subject/xlwubktx.html