Kafka Connect - 无法提交偏移量和刷新

Posted

技术标签:

【中文标题】Kafka Connect - 无法提交偏移量和刷新【英文标题】:Kafka Connect - Failed to commit offsets and flush 【发布时间】:2020-06-04 14:28:49 【问题描述】:

我的 Kafka 连接器已暂停,重新启动后,我的日志中出现了这些错误

[2020-02-19 19:36:00,219] ERROR WorkerSourceTaskid=wem-postgres-source-0 Failed to commit offsets (org.apache.kafka.connect.runtime.SourceTaskOffsetCommitter)
************
************
[2020-02-19 19:36:00,216] ERROR WorkerSourceTaskid=wem-postgres-source-0 Failed to flush, timed out while waiting for producer to flush outstanding 2389 messages (org.apache.kafka.connect.runtime.WorkerSourceTask)

由于未完成消息的数量发生了变化,我多次收到此错误。然后它停下来,再也没有看到它。

我是否需要在此处采取任何措施或 Connect 已重试并提交了偏移量,这就是错误停止的原因?

谢谢

【问题讨论】:

【参考方案1】:

该错误表示有大量消息缓冲,在达到超时之前无法刷新。要解决这个问题,您可以

在 Kafka Connect Worker Configs 中增加 offset.flush.timeout.ms 配置参数 或者您可以通过减少 Kafka Connect Worker 配置中的 producer.buffer.memory 来减少缓冲的数据量。当您有相当大的消息时,这将成为最佳选择。

【讨论】:

所以这可能是因为连接器被暂停,然后会有大量数据通过? @AnonymousAlias 可能就是这种情况。 您知道它是否会重试然后刷新并提交,还是会丢失数据并需要调整设置并重新启动? 您检查过连接器的状态吗?我假设它已经处于FAILED 阶段。 如果提交偏移量失败,则意味着偏移量未提交的消息通常应该在之后提交。因此,您可能没有丢失任何消息,但正如我所提到的,我不确定这一点。

以上是关于Kafka Connect - 无法提交偏移量和刷新的主要内容,如果未能解决你的问题,请参考以下文章

Kafka消息的偏移量和顺序消费原理

如何获取 kafka 主题分区的最后/结束偏移量?

Consumer.endOffsets 如何在 Kafka 中工作?

Kafka手动提交偏移量的作用到底是什么???

[转载]kafka入门笔记

Mongo ObjectID:即使使用 pytz,“也无法比较原始偏移量和可感知偏移量的日期时间”