kafka consumer,max.poll.records或max.partition.fetch.bytes哪个生效?

xpcnnkqh  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(1657)

我很难理解这两个使用者设置,假设我有一个有20个分区的主题,所有消息的大小都是1kb,为了简化讨论,还假设我只有一个使用者。
如果我设置max.partition.fetch.bytes=1024,那么,由于每个分区将给我一条消息,如果我正确理解它,我将一次性得到20条消息。
但是如果我设置max.poll.records=10呢?有谁能帮忙解释一下吗?非常感谢。

bpzcxfmw

bpzcxfmw1#

两个配置之间没有直接关系。 max.partition.fetch.bytes 指定服务器将返回的每个分区的最大数据量。另一方面 max.poll.records 指定单个轮询()中返回的最大记录数。
因此,在您的例子中,如果有一个主题有20个分区,每个分区都有一个1kb大小的记录,并且只有一个使用者订阅此主题,那么您可以获得每个消息,因为消息大小不超过 max.partition.fetch.bytes 但是你也可以在一次投票中得到最多10条信息。
因此;
您的消费者在第一次调用poll()时将收到10条消息。
在第二次poll()中,它将获得其他10条记录。

相关问题