【问题标题】:How to fetch single record at a time in Kafka sink connector如何在 Kafka 接收器连接器中一次获取单个记录
【发布时间】:2020-02-25 11:13:23
【问题描述】:

我正在使用 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());
    }
}

【问题讨论】:

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


    【解决方案1】:

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

    conusmer.max.poll.records=1
    

    【讨论】:

      【解决方案2】:

      您可以通过在 Kafka 连接属性文件中将最大轮询记录设置为所需的数量来实现此目的。确保您在 max.poll.records 属性前加上 consumer。想了解更多worker属性,请参考this页面。

      consumer.max.poll.records=n

      【讨论】:

      • 如前所述,我使用的是接收器任务,而不是独立的消费者。上述属性对我不起作用
      猜你喜欢
      • 2020-01-12
      • 2018-11-30
      • 2022-01-22
      • 2019-06-17
      • 2021-09-18
      • 2020-01-11
      • 2021-01-08
      • 2020-09-17
      • 1970-01-01
      相关资源
      最近更新 更多