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事务

相关推荐
zzxxlty10 小时前
kafka C++ 和 java端计算分区ID不一致排查
java·c++·kafka
后季暖11 小时前
kafka原理详解
分布式·kafka
smileSunshineMan11 小时前
idea启动kafka源码
java·kafka·intellij-idea
a程序小傲13 小时前
中国电网Java面试被问:Kafka Consumer的Rebalance机制和分区分配策略
java·服务器·开发语言·面试·职场和发展·kafka·github
Analyze_ing13 小时前
DolphinScheduler启动flink任务, 用Flink消费Kafka数据(linux)
大数据·flink·kafka
zhojiew13 小时前
Kafka Connect集成Apache Iceberg写入AWS Glue表
kafka·apache·aws
qq_318121591 天前
互联网大厂Java面试故事:支付与金融服务微服务架构、消息队列与AI风控全流程解析
java·spring boot·redis·微服务·kafka·支付系统·金融服务
萧曵 丶1 天前
Kafka 全面解析
分布式·kafka
七夜zippoe2 天前
实时数据处理:Kafka与Python构建高可靠流处理系统
分布式·python·kafka·集群·流处理·exactly-once
a程序小傲2 天前
中国邮政Java面试被问:Kafka的Log Compaction实现和删除策略
java·开发语言·后端·python·面试·职场和发展·kafka