如何在Kafka Sink连接器中一次获取单个记录

时间:2019-10-30 07:39:22

标签: apache-kafka kafka-consumer-api apache-kafka-connect

我正在使用Kafka Sink Task从Kafka主题读取记录。 SinkTask方法中的put()是从中获取所有记录的入口点。 当前,连接器启动时,它将一起提取所有未提交的记录。 我希望工作者任务一次获取单个记录。 怎么做?

class CustomSinkTask extends SinkTask{

    @Override
        public void put(Collection<SinkRecord> records) {

            System.out.println("Inside put method " );
            if(records != null)
                System.out.println("number of records fetched are:" + records.size());
    }
}

2 个答案:

答案 0 :(得分:0)

您可以尝试将以下内容添加到工作程序属性文件中

conusmer.max.poll.records=1

答案 1 :(得分:0)

您可以通过在Kafka connect属性文件中将最大轮询记录设置为所需的数目来实现。确保为max.poll.records属性添加consumer前缀。要了解有关工作程序属性的更多信息,请参阅this页。

consumer.max.poll.records=n