gpt4 book ai didi

java - 如何改变消费者之间的领导者?

转载 作者:行者123 更新时间:2023-12-02 09:34:56 27 4
gpt4 key购买 nike

如果我有一个主题和多个具有相同 groupId 的消费者,则只有一个消费者(领导者)应该接收消息。我想选择哪个消费者将成为领导者并在java中接收消息,但我不知道该怎么做。

这是我的一位消费者的代码。是否有一些属性可以选择领导者?

@KafkaListener(topics = {"topic_kafka","topic_kafkaaa"}, groupId = "group_id")
public void consume(String message) throws IOException {
log.info("Consumed message in {} : {}", TOPIC, message);
}

最佳答案

我认为 Kafka 消费者组的工作方式可能与您预期的不同。卡夫卡消费者组没有领导者。一个消费者组订阅了主题,这些主题的分区总数为 X。然后 Kafka 会将该组中的所有消费者视为一个逻辑实体(假设如果一条消息传递给其中任何一个,则其交付给实体)并将 X 个分区划分为组中可用数量的消费者。如果消费者的数量多于分区的数量,则多余的部分将闲置。它是一个动态分配系统。

您可能正在考虑领导者,因为您正在考虑代理模型,其中一个主题的副本分布在多个代理中,并且其中一个代理是该主题的领导者。这不是消费者的工作方式。

如果您想确保特定消费者是唯一接收消息的消费者,那么您需要为其提供自己的消费者组。

关于java - 如何改变消费者之间的领导者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57606790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com