Kafka生产者信息流

oxf4rvwz  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(268)

我有一个题目叫 Topic1 有两个隔板。假设 serverA 是的领导者 Topic1 , partition1 以及 serverB 他是个追随者。
如果在我的客户机中发布到 serverB (在broker.list中我只指定 serverB )? 信息是如何传播的?它先发送到serverb,然后再发送到servera。

tpxzln5u

tpxzln5u1#

我发现这份文件非常有助于解释Kafka的内部情况。
生产者使用一个api向任何一个kafka服务器请求分区列表和这些分区的所有元数据。该元数据包括每个分区的主代理。生产者调用分区程序来获取目标分区,然后直接与该分区的kafka代理负责人交谈,将消息写入分区。领导者将处理与管理分区副本的任何其他代理的通信。

eh57zj3b

eh57zj3b2#

要将消息发布到分区,客户机首先从zookeeper中找到分区的前导并将消息发送给前导。领导者将消息写入其本地日志。每个follower使用一个socket通道不断地从leader提取新消息。follower将每个接收到的消息写入自己的日志,并向leader发送一个确认。一旦领导者从isr中的所有副本接收到确认,消息就被提交
因此,为了回答您的问题,如果客户机发布到serverb,它会向zookeeper咨询topic1和partition1的负责人。Zookeeper回应说servera是分区1的领导者。因此,客户机将消息发送到servera(这里我假设partitioner将消息发送到partition1)
所有这些都由Kafka制作人处理。最终用户应用程序不必担心这些细节。
你可以在这里了解更多

相关问题