分布式事务分析总结

2 篇文章 0 订阅

1、什么是分布式事务

分布式事务用于分布式系统中主要是为了确保不同节点的数据一致性,分布式事务有很多,最具代表性的就是oracre提出的XA分布式事务

分布式系统分为两阶段提交和三阶段提交,这里我们主要说一下两阶段提交。

两阶段提交主要有三个部分主动方应用、消息中间件、被动方应用,分布式事务主要是为解决数据不一致的问题。

首先主动方应用系统向消息中间件发送一个预消息,消息中间件将这条待确认消息进行持久化存储,并将存储成功与否的消息发送给主动方应用,如果存储成功就执行业务操作否则就不执行业务操作。主动方应用将业务操作的结果发送给消息中间件,如果业务操作成功就将数据库中的待确认消息的状态更新为待发送并发送给实时消息服务,失败就将消息进行删除。被动方应用监听到带发送的消息就进行业务处理,被动方业务处理过后将业务消息处理确认的应答分送给消息中间件,消息中间件将这条消息进行删除(实时消息服务中的消息)。

2、分布式事务的两个问题

当主动方处理完业务之后,还没有将处理结果信息分送给消息中间件,就会导致消息一直发送不出去也就是堵塞。还有一种就是被动方应用监听到待发送信息,也处理过业务但是没有将消息处理确认应答发送给消息中间件,消息中间件就不会将该消息进行删除。第一个的处理办法就是设置一个消息确认子系统监听消息队列的数据库,当监听到有数据库有没确认的消息就每隔一段时间从新查询主动方应用,如果到了规定的查询次数也没有成功就手动重启。第二个问题设置一个消息恢复子系统,消息恢复子系统回去查询被动方应用是否收到消息,如果收到消息就发送消息给消息中间件就行删除,如果没有收到消息就让消息中间件从新发送,但是被动方应用一直收不到消息,而消息恢复子系统也达到了发送次数,就将实时消息服务标记为死亡队列,手动重启。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值