图解分析:Kafka中producer和consumer如何知道分区leader在哪?

在Kafka技术专栏中,我们说leader是replicas 中的一个角色, producer 和 consumer 只跟 leader 交互。也就是说,leader 负责处理 partition 的所有读写请求,follower 则负责被动地去复制 leader 上的数据。

那问题是Kafka中的producer和consumer如何知道分区的leader在哪里?

producer和consumer过去直接与Zookeeper连接,以获得这些信息。现在Kafka已经脱离了这种耦合,从0.8版和0.9版开始,客户端直接从Kafka brokers那里获取元数据信息,这些brokers会和Zookeeper进行元数据的同步。

下图形象描述了元数据的同步,以及producer写入message的过程:

  • 发起元数据的请求;
  • 获取元数据的响应;
  • 写入对应的leader分区;
  • 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2019年10月15日
    下一篇 2019年10月15日

    相关推荐