---

title: Apache Kafka 消费组与投递语义:有序性、幂等与事务

keywords:

  • Kafka
  • 消费组
  • 有序性
  • 幂等
  • 事务

description: 梳理 Kafka 的分区有序性、幂等生产与事务性消费/提交策略,给出可验证的配置示例。

tags:

  • Kafka
  • 事务
  • 后端
  • 幂等
  • 有序性
  • 消息队列
  • 消费组

categories:

  • 文章资讯
  • 编程技术

---

Apache Kafka 消费组与投递语义:有序性、幂等与事务

有序性与分区

  • Kafka 按分区保证顺序;为需要顺序的键选择一致的分区键
  • 跨分区不保证全局顺序,使用聚合层或业务补偿

幂等生产配置

acks=all
enable.idempotence=true
max.in.flight.requests.per.connection=1
retries=INT_MAX

事务性生产与消费

transactional.id=app-tx-001
  • 生产者:初始化事务、开始事务、发送消息、将消费位点写入事务、提交事务
  • 消费者:启用读事务性消息并关闭自动提交

Java 示例(伪代码)

producer.initTransactions();
producer.beginTransaction();
producer.send(record);
producer.sendOffsetsToTransaction(offsets, groupId);
producer.commitTransaction();

消费者要点

enable.auto.commit=false
max.poll.interval.ms=300000
session.timeout.ms=10000
  • 批量处理后按分区同步提交位点,避免重复或遗漏

重试与回退

  • 幂等+事务可实现端到端至少一次与有效的去重
  • 失败路由至死信队列,保留审计与重放能力

总结

通过分区建模、幂等与事务组合,Kafka 能在高并发场景下提供稳定的顺序与可控的一致性。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部