kafka mysql事务_Kafka事务特性详解

1. Kafka事务的使用

Kafka中的事务特性主要用于以下两种场景:

生产者发送多条消息可以封装在一个事务中,形成一个原子操作。多条消息要么都发送成功,要么都发送失败。

read-process-write模式:将消息消费和生产封装在一个事务中,形成一个原子操作。在一个流式处理的应用中,常常一个服务需要从上游接收消息,然后经过处理后送达到下游,这就对应着消息的消费和生成。

当事务中仅仅存在Consumer消费消息的操作时,它和Consumer手动提交Offset并没有区别。因此单纯的消费消息并不是Kafka引入事务机制的原因,单纯的消费消息也没有必要存在于一个事务中。

Kafka producer API提供了以下接口用于事务操作:

/*** 初始化事务*/

public voidinitTransactions();/*** 开启事务*/

public void beginTransaction() throwsProducerFencedException ;/*** 在事务内提交已经消费的偏移量*/

public void sendOffsetsToTransaction(Mapoffsets,

String consumerGroupId)throwsProducerFencedException ;/*** 提交事务*/

public void commitTransaction() throwsProducerFencedException;/*** 丢弃事务*/

public void abortTransaction() throws ProducerFencedException ;

下面是使用Kafka事务特性的例子,这段代码Producer开启了一个事务,然后在这个事务中发送了两条消息。这两条消息要么都发送成功,要么都失败。

KafkaProducer producer =createKafkaProducer("bootstrap.servers", "localhost:9092","transactional.id”, “my-transactional-id");

producer.initTransactions();

producer.beginTransaction();

producer.send("outputTopic",

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值