我还是Kafka的新手,我不确定为什么有一个消费者和生产者参数的最大消息大小。拥有两个参数似乎会引入开发人员可能忽略的错误(即设置 fetch.max.message.bytes 低于 max.message.bytes ). 一定有一个用例或设计模式是我遗漏的,它促使kafka团队保留这两个配置值。
fetch.max.message.bytes
max.message.bytes
3wabscal1#
所以fetch.max.message.bytes是不存在的(至少在最新的kafka版本中是这样,那么您使用的是什么?),我猜您指的是fetch.max.bytes。无论如何,fetch.max.bytes和max.message.bytes在代理上(不是生产者/消费者)。max.message.bytes定义了消费者可以获得的每批消息的最大大小(您知道消息是按批处理的,因此分组在一起)。fetch.max.bytes定义了消费者一次可以从代理获得多少批的最大限制;这不是一个硬性限制,因为如果有更多的可用批次,经纪人会将部分批次退回,直到达到最大值,以避免消费者陷入困境。
1条答案
按热度按时间3wabscal1#
所以fetch.max.message.bytes是不存在的(至少在最新的kafka版本中是这样,那么您使用的是什么?),我猜您指的是fetch.max.bytes。无论如何,fetch.max.bytes和max.message.bytes在代理上(不是生产者/消费者)。max.message.bytes定义了消费者可以获得的每批消息的最大大小(您知道消息是按批处理的,因此分组在一起)。fetch.max.bytes定义了消费者一次可以从代理获得多少批的最大限制;这不是一个硬性限制,因为如果有更多的可用批次,经纪人会将部分批次退回,直到达到最大值,以避免消费者陷入困境。