分布式事务相关
分布式事务
本地事务:
分布式事务:分布式系统环境下由不同服务之间通过网络远程协作完成事务成为分布式事务。如:创建用户送积分,创建订单减库存等场景。
CAP理论:Consistency一致性,Availability可用性,Partition tolerance分区容忍性。
base理论:基本可用,软状态,最终一致性。
解决方案:2pc,tcc,可靠消息最终一致性,最大努力通知。
2pc:两阶段提交协议,将分布式事务分为两个阶段(准备阶段,提交阶段)。
由数据库的XA协议实现2PC称为:XA方案。缺点:由于需要用到关系型数据库的锁,导致性能较差。
SEATA方案:TC,TM,RM
@GlobalTransactional 开启全局事务,事务发起方开启全局事务,分支事务向事务协调器注册事务,通过事务协调器实现最终的事务。
TCC:try,confirm,cancel
可靠消息最终一致性:
事务发起方执行完本地事务后发送消息,事务参与方一定能够接受消息并处理成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。
1,本地事务与消息发送的原子性问题
2,事务参与方接受消息的可靠性
3,消息重复消费问题
使用rocketmq的事务消息进行实现
最大努力通知
目标:发起通知方通过一定机制最大努力将业务处理结果通知到接收方。
具体包括:
1,有一定的消息重复通知机制。因为接受通知方可能没有接受到通知,此时要有一定的机制对消息重复通知。
2,消息校对机制。当尽最大努力也没有通知到接收方,或者接收方消费消息后要再次消费,此时可有接收方主动向通知方查询消息信息来满足需求。
使用rocketmq的普通的消息的ack确认机制实现
最大努力通知与可靠消息最终一致性有什么不同?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App