我们计划编写一个Kafka使用者(java),该使用者读取Kafka队列以执行消息中的操作。
由于使用者独立运行,因此消息一次只能由一位使用者处理吗?其他所有使用者处理相同的消息,因为他们在分区中有自己的偏移量。
请帮助我理解。
最佳答案
这取决于Group ID。假设您有一个包含12个分区的主题。如果您有2个具有相同组ID的Kafka使用者,则他们都将读取6个分区,这意味着他们将读取不同的分区集=不同的消息集。如果您有4个具有相同组ID的Kafka枚举数,则它们每个都将读取三个不同的分区,等等。
但是,当您设置不同的组ID时,情况就会改变。如果您有两个具有不同组ID的Kafka使用者,他们将读取所有12个分区,而彼此之间没有任何干扰。这意味着两个使用者将独立地阅读完全相同的消息集。如果您有四个具有不同组ID的Kafka使用者,他们将全部读取所有分区等。