同步发送场景下配置max.in.flight.request.per.connection是否合理?
Kafka生产者
max.in.flight.request.per.connection在同步模式下的意义 首先明确这个配置的作用:max.in.flight.request.per.connection用于限制单个连接上,未收到Broker响应的待处理请求(即“飞行中请求”)的最大数量,核心是在异步生产者模式下平衡吞吐量与消息顺序、可靠性。
对于同步模式的生产者来说,这个配置几乎没有实际意义。因为同步生产者的逻辑是每发送一批消息后就会阻塞,必须等收到Broker的确认响应,才会继续发送下一批。这种机制下,同一时间永远只会有一个飞行中的请求——不管你把这个配置设成1还是更大的数值,都不会改变这个事实:设置大于1的值时,同步发送的阻塞逻辑根本不会让多个请求同时处于飞行状态;设置成1的话,也和默认行为完全一致。
所以对同步生产者而言,调整这个配置不会带来任何实际效果,完全没必要修改它。
内容的提问来源于stack exchange,提问作者Ankit Sahay
相关产品推荐
相关产品推荐

