【发布时间】:2018-10-04 06:55:04
【问题描述】:
在我们的系统中,我们在 tomcat 应用程序中使用旧版本的 kafka (0.9.0.1) 和旧的 scala 消费者 API。 大多数情况下一切正常,但有时当消费者运行的服务器被应用程序中的一些其他任务大量使用时,消费者会变得无响应,这会按预期触发重新平衡,并且消费者会从其分区中删除,其他消费者是用过。
我的问题是,当消费者重新注册时,是否有一种简单的方法可以重新注册?
我知道旧的消费者将分区消费者的详细信息存储在 Zookeeper 中,并且认为我们可以有一个任务来定期检查我们的消费者是否在那里注册,如果没有则重新启动消费者,但我不确定我们到底是什么应该在那里检查。任何人都可以向我指出一些关于 kafka 存储在 zookeeper 中的数据的文档(遗憾的是在官方文档中没有找到任何内容:()?
【问题讨论】:
-
您可以使用Zookeeper shell(或Exhibitor),或其他浏览器自行读取Zookeeper数据
-
kafka 为你做rebalance,为什么还要手动做呢?
-
@cricket_007 是的,这就是我想做的事情,但希望有一种更卡夫卡的方式来做到这一点。
-
@Deadpool 是的,kafka 进行了重新平衡。但我的问题如下: - 我有一个由 server1 和 server2 使用的主题 - server1 出现故障或工作过度,因此它无法使用消息,kafka 重新平衡并且只有 server2 使用该主题 - server1 再次可用,但 kafka 没有认识到这一点,不会重新平衡。这是我的问题,如何使 kafka 重新平衡并将 server1 添加到消费者(无需手动执行任何操作-现在我需要弄清楚这已经发生并手动重新启动服务器-)
标签: java apache-kafka apache-zookeeper