在Kafka Connect接收器任务中触发put()的频率是多少?

时间:2016-08-17 09:04:05

标签: apache-kafka apache-kafka-connect

我可以控制触发Kafka Connect Sink任务的put()方法的时间间隔吗?在这方面,Kafka Connect框架的预期行为是什么?理想情况下,我想指定,例如,除非你有X个新记录/ Y个新字节,或者自上次调用以来经过Z毫秒,否则不要打电话给我#34;。这可能会使接收器任务中的批处理逻辑更简单(引用documentation," 在许多情况下内部缓冲将非常有用,因此可以立即发送整批记录,从而减少将事件插入下游数据存储的开销)。

1 个答案:

答案 0 :(得分:0)

今天,仅在SinkTask中调用deliverMessages时才会调用WorkerSinkTask。好消息是,deliverMessages发生的唯一时间是poll,因此您应该控制overriding consumer properties轮询新记录的频率。

如果您想进行内部缓冲,可以查看HDFSConnector如何在其implementation of SinkTask中处理此问题。但是,现在,Connect会立即放置由民意调查返回的任何记录。

所有这些都说,如果您真的希望在邮件到达下游系统之前批量处理邮件,您可以考虑查看offset.flush.interval.ms and offset.flush.timeout.ms,它控制调用flush()的频率。