首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将kafka-consumer设置为消费群中的容灾消费者?

将kafka-consumer设置为消费群中的容灾消费者?
EN

Stack Overflow用户
提问于 2020-05-10 20:17:19
回答 1查看 68关注 0票数 1

我有一个Kafka基础设施,主题只有一个分区,2个消费者将订阅该分区。第一个使用者在应用程序的主实例中配置,第二个使用者是应用程序的灾难恢复实例的一部分。

现在的问题是,我希望第二个使用者充当故障转移使用者,即如果应用程序使用者的主实例发生故障,则故障转移应用程序的使用者应该开始使用消息。

我可以做的一件事是,在第二个使用者端,我可以通过调用Thread#Sleep来引入延迟,这样分区将被分配给主实例

代码语言:javascript
复制
 // called at the consumer bean initialization
 void subscribeConsume() {
    // leaving exception handling for brevity
    if(application.type.equals("BackupApp"))  {
       TimeUnit.MINUTE.sleep(5);
    }
     ...
    // subscription logic
 }

但这似乎是一种变通方法,而不是一个健壮的解决方案。在消费者库中是否有任何Kafka属性可以对此有所帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-05-11 14:29:13

如果您有一台kafka服务器,一个topic只有一个分区,两个consumer消费同一个topic,那么默认情况下,一次只能有一个consumer能够接收消息。因为它只有一个分区。当该消费者宕机时,在会话超时(默认值为5分钟)后,消费者重新平衡将被踢开,您的第二个消费者将能够接收到相同主题的消息。现在您已经提到了您的kafka基础架构,如果您提到基础架构是否有kafka集群处于故障转移配置中,这将是有意义的。

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

https://stackoverflow.com/questions/61711816

复制
相关文章

相似问题

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