【问题标题】:max.in.flight.requests.per.connection kafka producer configurationmax.in.flight.requests.per.connection kafka 生产者配置
【发布时间】:2020-12-29 14:07:06
【问题描述】:

我有一个关于 max.in.flight.requests.per.connection kafka 生产者配置的问题。 此配置适用于发送到代理的每条消息还是批量中的所有消息?

例如,如果我的批处理大小为 16KB,每条消息的大小为 1 KB,那么批处理将有 16 条消息。

如果 max.in.flight.requests.per.connection 值为 1,那么生产者会从批处理中发送一条消息并等待确认,然后再从批处理中发送下一条消息?

生产者将发送该批次中的所有消息并等待确认后再发送下一批?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    max.in.flight.requests.per.connection (pipelining)

    此属性在生产者 max.in.flight.requests.per.connection 属性上配置。 This property applies to the batch of messages not to individual messages.

    max.in.flight.requests.per.connection=1 表示一次性发送一批记录,等到没有收到broker的响应。

    客户端在阻塞之前将在单个连接上发送的未确认请求的最大数量。如果此设置大于 1,则在生产者将分组批次发送到代理时使用流水线。

    这提高了吞吐量,但如果发送失败,则存在由于重试(如果启用重试)而导致无序交付的风险。

    还要注意,过多的流水线会降低吞吐量。

    【讨论】:

      猜你喜欢
      • 2020-09-24
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 2021-12-31
      • 2017-06-09
      • 1970-01-01
      • 2016-06-16
      相关资源
      最近更新 更多