Skip to content
消息系统选型与 Kafka 基础 · 第 5 篇 / 共 5 篇
领域数据与中间件
专题Kafka 专题
当前序列消息系统选型与 Kafka 基础
阅读位置第 5 篇 / 共 5 篇当前专题第 1 个序列 / 共 6 个序列

Kafka Producer 参数调优:acks、retries、batch、linger、compression 该怎么理解

Kafka 生产端配置很多,但真正高频影响吞吐和可靠性的,常常集中在少数几个参数上。

如果这些参数理解不清,很容易出现:

  • 想要可靠,结果吞吐掉很多
  • 想要快,结果重试边界没想清楚

先说结论

Kafka Producer 参数里,最值得优先理解的通常是:

  • acks
  • retries
  • batch.size
  • linger.ms
  • compression.type

因为它们几乎直接决定了:

  • 可靠性
  • 吞吐
  • 延迟

之间怎么权衡。

一、acks 在决定什么

最核心就是:

  • 生产者发出的消息,要等到什么程度才算“写成功”

这直接影响:

  • 丢消息风险
  • 写入等待时间

你可以把它理解成:

  • 等得越充分,通常越稳
  • 但延迟和吞吐也可能受影响

二、retries 为什么不能孤立看

重试能提高成功率,但它不是免费能力。

因为重试会引出:

  • 重复写入风险
  • 顺序性边界

所以它通常要结合:

  • 幂等生产者

一起看。

三、batch.size 和 linger.ms 在配合什么

这两个参数更偏吞吐优化。

batch.size

更像:

  • 一批攒多大再发

linger.ms

更像:

  • 愿不愿意再等一小会儿,多攒一点一起发

这两者共同影响的是:

  • 单次发送的批量程度

一般来说:

  • 批量越充分,吞吐越好
  • 但等待时间也可能更长

四、compression 为什么很值得开

压缩的核心收益通常是:

  • 降低网络传输和存储成本

尤其是消息量大、文本内容多时,压缩常常很有价值。

但也要意识到:

  • 压缩会带来 CPU 成本

所以它本质上也是:

  • CPU 换网络与存储

五、怎么更实际地调

场景 1:业务消息可靠性优先

优先考虑:

  • 更稳的确认语义
  • 合理的重试
  • 幂等生产

场景 2:日志流、吞吐优先

优先考虑:

  • 批量发送
  • linger
  • 压缩

场景 3:低延迟特别敏感

就要小心:

  • linger 太大
  • 批次攒太久

一句话总结

Kafka Producer 调优本质上不是“把参数调到最大”,而是在:

  • 可靠性
  • 吞吐
  • 延迟

之间做取舍。

先把 acks / retries / batch / linger / compression 这五个核心点理解透,很多生产端问题就能看得更清楚。

延伸阅读相关文章优先当前专题,再补跨专题关联。
同一序列 · 回看前文会更完整Kafka 消费组与 Rebalance适合先理解为什么要用 MQ,再衔接 Kafka 的核心架构、消费组和生产端基础。Kafka 专题 · 消息系统选型与 Kafka 基础同一序列 · 回看前文会更完整Kafka 核心架构与消息投递适合先理解为什么要用 MQ,再衔接 Kafka 的核心架构、消费组和生产端基础。Kafka 专题 · 消息系统选型与 Kafka 基础同专题其他序列 · Kafka 投递链路与日志存储机制保留策略和日志压缩适合哪些场景适合把副本机制、acks、批量压缩和日志组织放在一条 Kafka 投递主线上理解。Kafka 专题 · Kafka 投递链路与日志存储机制同专题其他序列 · Kafka 高级投递与消费治理批量发送、压缩和吞吐延迟怎么权衡适合把分区键、批量压缩、位点提交和 ISR 治理放在一起看。Kafka 专题 · Kafka 高级投递与消费治理跨专题关联 · 同场景:基础学习缓存穿透治理怎么做更稳适合把 Sentinel、穿透防护、延迟队列和地理位置搜索放在一起看。Redis 专题 · Redis 可用性与热点治理细节跨专题关联 · 同场景:基础学习慢 SQL 治理为什么不能只靠索引适合把大事务、DDL、回填、慢 SQL 治理和归档分层放进一条持续治理主线上看。MySQL 专题 · MySQL 变更治理与数据生命周期
继续阅读消息系统选型与 Kafka 基础当前序列第 5 篇 / 共 5 篇当前专题第 1 个序列 / 共 6 个序列
往前看
上一篇Kafka 消费组与 Rebalance回到当前序列上一章上一序列协同控制与分布式锁从第 1 篇开始:Redis 和 ZooKeeper 分布式锁怎么选
往后看
下一序列Kafka 可靠性与故障治理从第 1 篇开始:Kafka 顺序性、幂等生产者和精确一次

把零散经验整理成可查、可复用、可持续更新的企业级知识门户