Kafka S3 connect:基于挂钟的定时旋转似乎无法写入

时间:2019-04-29 16:49:50

标签: amazon-s3 apache-kafka apache-kafka-connect confluent

我们正在使用Confluent的Kafka S3 Connector,版本5.2.1。在“分布式工作程序”设置中与一个节点一起运行。

对于每个documentation,我们应该能够将大小和基于时间的间隔都设置为S3。

我们正在使用以下刷新设置

{ 
  "rotate.interval.ms": 300000, // 5 minutes
  "flush.size": 1000,
  "timestamp.extractor": "Wallclock" // default
  ... (other settings)
}

但是我看不到主题少于1000条消息但有可用数据的任何数据。

但是,当我将设置更改为较小的冲洗尺寸并删除旋转间隔时:

{ 
  "flush.size": 5, // some small amount
  "timestamp.extractor": "Wallclock", // default
  ... (other settings)
}

在所有其他设置相同的情况下,我可以立即在s3存储桶中查看数据。

我没有更改任何其他设置,因此我非常有信心可以连接到s3,并且看到正在部署任务工作器。

我想念什么吗?

1 个答案:

答案 0 :(得分:1)

如果您希望每5分钟一次,则最好使用rotate.schedule.interval.ms,它会强制Connect在此间隔内转储文件。

  

此配置可确保在每个配置的间隔内调用文件提交。 ...无论先前的提交时间或消息数如何,提交都将在计划的时间执行

rotate.interval.ms将对照批次中的第一条消耗记录检查记录时间戳。

  

时间间隔是使用时间戳提取器确定的

如果记录少于刷新大小,则整个批处理将仅在内存中等待,直到新记录的时间戳时差大于第一个看到的记录。

上次我查看源代码时,

flush.size始终优先于所有其他时间设置。