如何在Apache Kafka中实现极长的重新平衡

问题描述

我正在编写一个kafka使用者,它对传入的记录进行批处理并将它们定期刷新到持久存储中。

存储系统的性质使得冲洗可能需要很长时间-有时超过一分钟。

使事情有些复杂,我在批处理中对数据进行分区的方式与kafka中的分区不匹配,因此kafka分区与存储文件之间存在多对多的关系。

此应用程序的要求是至少一次语义,在可能的范围内尽量减少重复,但是在未将kafka分区的所有批处理都包含到同一分区的较早消息都刷新到存储之前,绝对不要提交偏移。

在重新平衡之前,这都是相当简单的,此时我需要提交等待挂起的刷新,然后提交我可以在重新平衡侦听器中使用的所有偏移量。

鉴于此,我有什么方法可以调整使用者配置,以使onPartitionsRevoked最多运行几分钟?我到底该怎么做才能允许这样做?

我知道,只要进行重新平衡,我的消费者组就不会处理任何记录。我对此表示同意(尽管我乐于接受任何其他建议,以更轻松的方式来处理再平衡问题。)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)