【发布时间】:2015-02-18 23:32:30
【问题描述】:
我们有一个应用程序,消费者读取消息,线程执行许多操作,包括在向另一个主题生成消息之前访问数据库。在线程上消费和产生消息之间的时间可能需要几分钟。一旦为新主题生成消息,就会完成提交以指示我们已完成对消费者队列消息的工作。由于这个原因,自动提交被禁用。
我正在使用高级消费者,我注意到 zookeeper 和 kafka 会话超时,因为我们在消费者队列上执行任何操作需要很长时间,所以每次线程返回读取时,kafka 最终都会重新平衡更多来自消费者队列,一段时间后消费者开始阅读新消息需要很长时间。
我可以将 zookeeper 会话超时设置得非常高,以免造成问题,但随后我必须相应地调整重新平衡参数,并且 kafka 在一段时间内不会接收新的消费者以及其他副作用。
我有什么办法来解决这个问题?有没有办法让 kafka 和 zookeeper 心跳,让双方都开心?如果我使用一个简单的消费者,我还会遇到同样的问题吗?
【问题讨论】:
-
如果您只是解释您的问题,您更有可能获得帮助。说你“想得到一些反馈”可能会让你的问题结束。 Stack Overflow 不是论坛;我们重视简明扼要。
标签: apache-kafka kafka-consumer-api