说我有一个主题T1,其中包含3个分区,即P1,P2和P3。 p1是领导者,其余是跟随者。
现在有2个制作人希望推送到相同的主题T1。我相信P1将是他们两个的领导者?同时将保持单个偏移 对于它们两者还是偏移量是每个生产者每个分区的维护者?
现在我有一个正在从T1轮询的消费者。它会默认从两个生产者那里获取消息,还是必须明确提及生产者名称? 想要特定生产者的消息吗?
答案 0 :(得分:3)
领导者不依赖生产者或消费者,因此p1将始终作为领导者返回。偏移量对于生产者而言并不重要,它们是针对每个消费者组定义的。偏移量确定使用者组读取并提交了哪些消息。
消费者将始终阅读所有消息,这无关紧要,哪个生产者发布了这些消息。
答案 1 :(得分:1)
您可能正在混淆副本和分区。当您说您的主题有3个分区时,这意味着您的记录将根据记录键(或调度程序算法)在其中进行调度。 没有“领导分区”。但是,您有一个负责处理分区的领导者经纪人。在您的情况下,您将有3位领导者,每个人都管理您3个分区之一。
有关Kafka分区的一篇有趣的帖子:
Understanding Kafka Topics and Partitions
Yannick