---
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 能在高并发场景下提供稳定的顺序与可控的一致性。

发表评论 取消回复