我很难理解这两个使用者设置,假设我有一个有20个分区的主题,所有消息的大小都是1kb,为了简化讨论,还假设我只有一个使用者。
如果我设置max.partition.fetch.bytes=1024,那么,由于每个分区将给我一条消息,如果我正确理解它,我将一次性得到20条消息。
但是如果我设置max.poll.records=10呢?有谁能帮忙解释一下吗?非常感谢。
我很难理解这两个使用者设置,假设我有一个有20个分区的主题,所有消息的大小都是1kb,为了简化讨论,还假设我只有一个使用者。
如果我设置max.partition.fetch.bytes=1024,那么,由于每个分区将给我一条消息,如果我正确理解它,我将一次性得到20条消息。
但是如果我设置max.poll.records=10呢?有谁能帮忙解释一下吗?非常感谢。
1条答案
按热度按时间bpzcxfmw1#
两个配置之间没有直接关系。
max.partition.fetch.bytes
指定服务器将返回的每个分区的最大数据量。另一方面max.poll.records
指定单个轮询()中返回的最大记录数。因此,在您的例子中,如果有一个主题有20个分区,每个分区都有一个1kb大小的记录,并且只有一个使用者订阅此主题,那么您可以获得每个消息,因为消息大小不超过
max.partition.fetch.bytes
但是你也可以在一次投票中得到最多10条信息。因此;
您的消费者在第一次调用poll()时将收到10条消息。
在第二次poll()中,它将获得其他10条记录。