kafka-事务

1. 事务的5个API

java 复制代码
// 1初始化事务
void initTransactions();

// 2开启事务
void beginTransaction() throws ProducerFencedException;

// 3在事务内提交已经消费的偏移量(主要用于消费者)
void sendOffsetsToTransaction(Map<TopicPartition, OffsetAndMetadata> offsets,
                              String consumerGroupId) throws ProducerFencedException;

// 4提交事务
void commitTransaction() throws ProducerFencedException;

// 5放弃事务(类似于回滚事务的操作)
void abortTransaction() throws ProducerFencedException;

2. 幂等性和事务性的关系

事务属性实现前提是幂等性,即在配置事务属性transaction id时,必须还得配置幂等性;但是幂等性是可以独立使用的,不需要依赖事务属性。

  1. 幂等性引入了Porducer ID
  2. 事务属性引入了Transaction Id属性。

使用场景

  1. enable.idempotence = true,transactional.id不设置:只支持幂等性。
  2. enable.idempotence = true,transactional.id设置:支持事务属性和幂等性
  3. enable.idempotence = false,transactional.id不设置:没有事务属性和幂等性的kafka
  4. enable.idempotence = false,transactional.id设置:无法获取到PID,此时会报错

3. 参考

kafka幂等生产者及事务_51CTO博客_kafka事务

相关推荐
Advancer-9 小时前
消息发送失败处理与 DLQ 补偿流程
java·spring boot·kafka
Devin~Y9 小时前
互联网大厂Java面试实录:Spring Boot、Kafka、Redis一致性与Spring AI RAG(小Y的翻车现场)
java·spring boot·redis·kafka·mybatis·hibernate·jpa
麦兜和小可的舅舅9 小时前
ClickHouse实时分布式集群设计方案选择探究
c++·分布式·clickhouse·kafka
小马爱打代码9 小时前
Kafka 运维与高并发实战:20个核心命令详解
运维·kafka
小钻风336619 小时前
Kafka 零基础实操命令大全
分布式·kafka
OpsEye1 天前
线上Kafka积压后,我是怎么处理的
运维·kafka·监控
r-t-H1 天前
从零开始搭建CDH-第十四章
spark·kafka·centos·cloudera
敲个大西瓜1 天前
kafka为什么分区不能那么多
kafka
Devin~Y1 天前
大厂Java面试实录:Spring Boot/Cloud、Redis+Kafka、JVM调优与RAG/Agent(Spring AI)三轮递进问答
java·jvm·spring boot·redis·spring cloud·kafka·rag
小钻风33662 天前
ZooKeeper + Kafka 集群搭建实战记录
分布式·zookeeper·kafka