有一种poll
方法可以轮询ConsumerRecords
,但是它无法指定记录的大小,如何以特定的大小来轮询记录?
public ConsumerRecords<K, V> poll(long timeout) {}
答案 0 :(得分:0)
我发现在消费者端唯一相关的配置是fetch.max.bytes
属性。该文档说了有关此属性的以下内容:
服务器应获取的最大数据量 请求。记录是由消费者分批提取的,如果 提取的第一个非空分区中的第一个记录批处理是 大于此值,记录批仍将返回到 确保消费者可以取得进步。因此,这不是 绝对最大值。经纪人接受的最大记录批量大小 通过message.max.bytes(代理配置)或max.message.bytes定义 (主题配置)。请注意,使用者在中执行多次提取 平行。
您还可以使用max.partition.fetch.bytes
属性为每个分区的获取设置限制,但是我认为这不是您想要的。
或者,如果您估算了每条记录的平均大小,则可以尝试使用max.poll.records
参数。
答案 1 :(得分:0)
Kafka实际上不支持此功能。您也可以尝试使用fetch.max.bytes属性。