Kafka消费者有一个配置max.poll.records
它控制单次调用 poll() 及其返回的最大记录数默认值为 500 https://kafka.apache.org/documentation/#max.poll.records。我已将其设置为非常高的数字,以便我可以在一次轮询中获取所有消息。
然而,即使主题有更多消息,民意调查在一次调用中仅返回几千条消息(大约 6000 条)。
如何进一步增加单个消费者读取的消息数量?
您可以增加消费者poll()
通过增加批量大小max.partition.fetch.bytes
,但仍然根据文档它有限制fetch.max.bytes
这也需要随着所需的批量大小而增加。而且从文档中还有另一个属性message.max.bytes
in 主题配置 https://kafka.apache.org/documentation/#topicconfigs and 经纪商配置 https://kafka.apache.org/documentation/#brokerconfigs来限制批量大小。所以一种方法是根据您所需的批量大小增加所有这些属性
In Consumer config
最大分区获取字节数默认值为1048576
服务器将返回的每个分区的最大数据量。记录由消费者批量获取。如果提取的第一个非空分区中的第一个记录批次大于此限制,该批次仍将被返回以确保消费者可以取得进展。代理接受的最大记录批量大小是通过 message.max.bytes (代理配置)或 max.message.bytes (主题配置)定义的。请参阅 fetch.max.bytes 以限制消费者请求大小
In Consumer Config
获取最大字节数默认值为52428800
服务器应为获取请求返回的最大数据量。记录由消费者批量获取,如果获取的第一个非空分区中的第一个记录批次大于该值,仍然会返回该记录批次以确保消费者能够取得进展。因此,这不是绝对最大值。代理接受的最大记录批量大小是通过 message.max.bytes (代理配置)或 max.message.bytes (主题配置)定义的。请注意,消费者并行执行多个提取。
In Broker config
消息最大字节数默认值为1000012
Kafka允许的最大记录批量大小。如果增加此值并且存在早于 0.10.2 的消费者,则消费者的获取大小也必须增加,以便他们可以获取这么大的记录批次。
在最新的消息格式版本中,为了提高效率,记录总是分组为批次。在以前的消息格式版本中,未压缩的记录不会分组为批次,并且此限制仅适用于这种情况下的单个记录。
这可以使用主题级别 max.message.bytes 配置针对每个主题进行设置。
In Topic config
最大消息字节数默认值为1000012
Kafka允许的最大记录批量大小。如果增加此值并且存在早于 0.10.2 的消费者,则消费者的获取大小也必须增加,以便他们可以获取这么大的记录批次。
在最新的消息格式版本中,为了提高效率,记录总是分组为批次。在以前的消息格式版本中,未压缩的记录不会分组为批次,并且此限制仅适用于这种情况下的单个记录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)