batch.size 和linger.ms的关系?

来源:5-8 消息传递保障

杨勤_cd

2020-09-19

看视频后,这是我对这两个参数的理解。
batch.size:producer收到消息的字节数达到该阈值,才开始批量发送
linger.ms:延迟指定时间以便producer获取到更多消息
---------------------------------------------------------------------
我还是不太理解两者的关系,问题如下:
假设:batch.size设置1024字节,linger.ms设置0毫秒

  1. producer一定要等到收到的消息到达1024后才会向服务器批量发送消息?

假设batch.size设置1024字节,linger.ms设置3毫秒。

  1. producer在3毫秒内收到的字节数小于1024字节,producer在3毫秒这个时刻不会发送消息,而是继续等待数据到达1024字节后才开始批量发送?
  2. producer在2毫秒时已经收到的字节数大于1024字节,producer在2毫秒这个时刻就发送消息?
写回答

1回答

Allen

2020-09-21

首先,其实这两个参数没有配合作用, Kafka默认情况下是满足其一就发送。 不过一般都是合理范围内的值【Producer有基础校验】, 比如linger.ms设置为0, 那么这个参数就会走默认了

1
0

Kafka多维度系统精讲,从入门到实战开发

系统讲解Kafka,实战结合,让你成为使用Kafka的高手

896 学习 · 237 问题

查看课程