Amazon s3 卡夫卡S3连接:基于挂钟的定时旋转不';我好像不写信
我们正在使用Confluent的卡夫卡,版本5.2.1。在分布式工作程序设置中使用一个节点运行 根据我们应该能够设置刷新到S3的大小以及基于时间的间隔 我们正在使用以下刷新设置Amazon s3 卡夫卡S3连接:基于挂钟的定时旋转不';我好像不写信,amazon-s3,apache-kafka,apache-kafka-connect,confluent-platform,Amazon S3,Apache Kafka,Apache Kafka Connect,Confluent Platform,我们正在使用Confluent的卡夫卡,版本5.2.1。在分布式工作程序设置中使用一个节点运行 根据我们应该能够设置刷新到S3的大小以及基于时间的间隔 我们正在使用以下刷新设置 { "rotate.interval.ms": 300000, // 5 minutes "flush.size": 1000, "timestamp.extractor": "Wallclock" // default ... (other settings) } 但是我没有看到任何数据被写在一个主
{
"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可以连接,并且我看到任务工作人员正在部署
我遗漏了什么吗?如果您希望每5分钟一次,您应该更喜欢
rotate.schedule.interval.ms
,它强制连接到在此间隔内的转储文件
此配置确保每个配置的时间间隔调用文件提交。。。提交将在计划的时间执行,而不考虑以前的提交时间或消息数
rotate.interval.ms
将对照批处理中第一条消耗的记录检查记录时间戳
时间间隔是通过使用时间戳提取器确定的
如果记录少于刷新大小,则整个批处理将在内存中等待,直到新记录的时间戳差异大于第一次看到的记录
flush.size
在我上次查看源代码时写入文件时,总是优先于所有其他时间设置 谢谢你的回答。为了确保我理解了rotate.interval.ms
:如果我们有一个主题有N个flush.size
记录,并且它是非活动的(没有新记录),我们可能永远不会只使用定义的rotate.interval.ms
,因为不会有新的记录来确定旋转所需的时间戳差异?这是我对属性的理解,是的。请使用帖子旁边的复选标记接受答案