如何指定特定大小的kafka轮询记录?

时间:2018-07-06 03:53:36

标签: apache-kafka kafka-consumer-api

有一种poll方法可以轮询ConsumerRecords,但是它无法指定记录的大小,如何以特定的大小来轮询记录?

 public ConsumerRecords<K, V> poll(long timeout) {}

2 个答案:

答案 0 :(得分:0)

我发现在消费者端唯一相关的配置是fetch.max.bytes属性。该文档说了有关此属性的以下内容:

  

服务器应获取的最大数据量   请求。记录是由消费者分批提取的,如果   提取的第一个非空分区中的第一个记录批处理是   大于此值,记录批仍将返回到   确保消费者可以取得进步。因此,这不是   绝对最大值。经纪人接受的最大记录批量大小   通过message.max.bytes(代理配置)或max.message.bytes定义   (主题配置)。请注意,使用者在中执行多次提取   平行。

您还可以使用max.partition.fetch.bytes属性为每个分区的获取设置限制,但是我认为这不是您想要的。

或者,如果您估算了每条记录的平均大小,则可以尝试使用max.poll.records参数。

答案 1 :(得分:0)

Kafka实际上不支持此功能。您也可以尝试使用fetch.max.bytes属性。

相关问题