Kafka幂等性与事务

kafka幂等性 博客https://www.cnblogs.com/smartloli/p/11922639.html
幂等性: 主要解决单会话(producer宕机重启幂等性失效)
主要是引入了ProducerID和SequenceNumber来实现幂等性
,当producer发送消息给broker后等待返回ack,broker持久化数据后并返回ack,
ack返回途中假如遇到了网络IO、FullGC、OOm等异常时,ack返回失败,
producer会继续发送数据,如果没有幂等性,那么数据会被再次持久化,
所以在发送消息的时候会同步一个PID和SequenceNumber,
PID是生产者初始化的时候生成的,SequenceNumber是累加的变量,
第一次发送数据和PID、SequenceNumber=1,
producer等待一段时间没收到ack继续发送数据和PID、SequenceNmber=1,
borker接收到相同的SequenceNumber会直接返回ack。

事务: 主要解决多回话
Kafka中的事务与数据库的事务类似,Kafka中的事务属性是指一系列的Producer生产消息和消费消息提交Offsets的操作在一个事务中,即原子性操作。对应的结果是同时成功或者同时失败。

这里需要与数据库中事务进行区别,操作数据库中的事务指一系列的增删查改,对Kafka来说,操作事务是指一系列的生产和消费等原子性操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值