Skip to content
Kafka 高级投递与消费治理 · 第 2 篇 / 共 3 篇
领域数据与中间件
专题Kafka 专题
当前序列Kafka 高级投递与消费治理
阅读位置第 2 篇 / 共 3 篇当前专题第 3 个序列 / 共 6 个序列

批量发送、压缩和吞吐延迟怎么权衡

先说结论

  • Kafka 生产端的吞吐优化,核心通常在批量和压缩
  • 批量越大,吞吐通常越高,但发送时延往往也会更大
  • 压缩能明显减少网络和磁盘开销,但会增加 CPU 成本

一、为什么 Kafka 总在讲批量

因为 Kafka 不是按“单条消息最优”设计的,而是按“批量顺序写日志”设计的。

这意味着:

  • 多条消息凑成 batch 发,往往更省
  • broker 落盘、网络传输、复制同步也更高效

所以一旦你追求高吞吐,通常都会碰到两个参数思路:

  • 攒多久再发
  • 攒多大再发

二、批量能带来什么

批量发送通常能带来:

  • 更少的网络请求次数
  • 更高的 broker 写入效率
  • 更好的压缩效果

但代价也很明确:

  • 单条消息可能要等一下
  • 高峰和低峰的表现会不一样
  • 小流量场景下收益不一定明显

三、压缩为什么常常值得开

Kafka 场景里,压缩通常不是“锦上添花”,而是很常见的基础优化。

因为压缩后通常会降低:

  • 网络传输成本
  • broker 磁盘写入量
  • 副本复制流量

常见取舍可以粗略理解成:

  • lz4:更偏均衡,延迟和吞吐表现常常比较稳
  • snappy:实现简单,老系统里很常见
  • zstd:压缩率更高,但更吃 CPU

四、什么时候更看吞吐,什么时候更看延迟

更偏吞吐的场景

  • 日志采集
  • 埋点上报
  • 流式数据同步
  • 批量异步任务

这类场景通常更愿意接受:

  • 稍高一点发送时延
  • 更大的 batch
  • 更积极的压缩

更偏延迟的场景

  • 支付结果通知
  • 订单状态流转
  • 库存异步校正

这类场景就不能一味追求大批量,否则端到端时延会被明显拉高。

五、最容易踩的坑

1. 一味调大批量参数

吞吐可能上去了,但业务方会先感知到消息延迟变大。

2. 只看 producer 指标,不看 broker 和消费者

发送吞吐上去之后,broker 磁盘、网络、consumer lag 可能会跟着变差。

3. 所有 Topic 用一套策略

日志 Topic 和交易 Topic 的目标根本不一样,不适合完全同配。

总结

Kafka 里“批量、压缩、吞吐、延迟”本来就是一组权衡题,没有一组参数能同时把所有指标都拉满。日志流更偏吞吐,交易流更偏时延,先分清业务目标,再决定 batch 和压缩策略,效果会稳很多。

延伸阅读相关文章优先当前专题,再补跨专题关联。
同一序列 · 顺着当前主线继续读位点提交策略怎么影响消费语义适合把分区键、批量压缩、位点提交和 ISR 治理放在一起看。Kafka 专题 · Kafka 高级投递与消费治理同一序列 · 回看前文会更完整Kafka 分区键怎么设计更稳适合把分区键、批量压缩、位点提交和 ISR 治理放在一起看。Kafka 专题 · Kafka 高级投递与消费治理同专题其他序列 · Kafka 投递链路与日志存储机制保留策略和日志压缩适合哪些场景适合把副本机制、acks、批量压缩和日志组织放在一条 Kafka 投递主线上理解。Kafka 专题 · Kafka 投递链路与日志存储机制同专题其他序列 · Kafka 消费治理与运维观察顺序消费真的只靠单分区就够了吗适合把 Rebalance、offset 提交、重试层级和 Broker 磁盘状态放在同一条 Kafka 消费治理主线上看。Kafka 专题 · Kafka 消费治理与运维观察跨专题关联 · 同场景:基础学习@Conditional 系列注解怎么配合使用适合把自动装配、条件装配、Profile 和循环依赖放回 Spring Boot 启动过程里理解。Spring 专题 · Spring Boot 启动、装配与配置跨专题关联 · 同场景:基础学习迟到数据、侧输出流和补数边界适合把 Savepoint、迟到数据和两阶段提交放在一起看。Flink 专题 · Flink 状态一致性与迟到数据处理
继续阅读Kafka 高级投递与消费治理当前序列第 2 篇 / 共 3 篇当前专题第 3 个序列 / 共 6 个序列
往前看
上一篇Kafka 分区键怎么设计更稳回到当前序列上一章上一序列Kafka 可靠性与故障治理从第 1 篇开始:Kafka 顺序性、幂等生产者和精确一次
往后看
下一篇位点提交策略怎么影响消费语义继续当前序列下一章下一序列Kafka 存储与元数据治理从第 1 篇开始:ISR、unclean leader election 和可用性边界

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