我们正在使用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,并且看到正在部署任务工作器。
我想念什么吗?
答案 0 :(得分:1)
如果您希望每5分钟一次,则最好使用rotate.schedule.interval.ms
,它会强制Connect在此间隔内转储文件。
此配置可确保在每个配置的间隔内调用文件提交。 ...无论先前的提交时间或消息数如何,提交都将在计划的时间执行
rotate.interval.ms
将对照批次中的第一条消耗记录检查记录时间戳。
时间间隔是使用时间戳提取器确定的
如果记录少于刷新大小,则整个批处理将仅在内存中等待,直到新记录的时间戳时差大于第一个看到的记录。
上次我查看源代码时, flush.size
始终优先于所有其他时间设置。