kafka版本:0.10.2.1
业务有这种场景:处理一条消息需要花费1h-1d的时间,所以pull间隔必定超过max.poll.interval.ms。但是从0.10.1版本开始session.timeout.ms 和 max.poll.interval.ms 解耦了,是两个独立的线程,不需要在处理完消息之后再发送心跳,这样就避免了处理时间太长导致的移除问题。
但是发现还是频繁的发生reblance,怀疑是pull间隔超过了max.poll.interval.ms导致的,如果事实如此的话改怎么设置参数既能改善reblance的情况,又能保证group内消费者的健康呢?是不是将max.poll.interval.ms设置成一天就可以呢?
兄弟,我感觉你的场景不适合用kafka。。
如果没有积压的消息,建议你可以优先提交offset,然后在处理消息,如果kafka中没有积压的消息,就都正常了。
调整这么长时间,如果kafka集群真的出故障了,那就无法及时察觉了。
另外,只改
max.poll.interval.ms
不行的,如session.timeout.ms
和request.timeout.ms
等也要改。具体参见:https://www.orchome.com/535
搜索
timeout
关键字。你的答案