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

发表评论 取消回复