首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在消费者之间更换领导者?

如何在消费者之间更换领导者?
EN

Stack Overflow用户
提问于 2019-08-22 18:01:25
回答 1查看 67关注 0票数 0

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

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

代码语言:javascript
复制
@KafkaListener(topics = {"topic_kafka","topic_kafkaaa"}, groupId = "group_id")
    public void consume(String message) throws IOException {
        log.info("Consumed message in {} : {}", TOPIC, message);
    }
EN

回答 1

Stack Overflow用户

发布于 2019-08-22 20:58:25

我认为Kafka消费者群体的工作方式可能与你预期的不同。没有一个卡夫卡消费者群体的领导者。消费者组订阅了主题,这些主题具有总数量的分区,X.Kafka然后对待组中的所有这些消费者,就好像它们是一个逻辑实体(假设如果消息被传递到其中的任何一个,那么它被传递到实体),并在组中可用数量的消费者中划分X个分区。如果你有比分区数量更多的消费者,额外的就会闲置。这是一个动态的分配系统。

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

如果你想确保某个特定的消费者是唯一获得消息的消费者,那么你需要给它自己的消费者组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57606790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档