永发信息网

Dubbo的分布式事务问题怎么处理

答案:2  悬赏:50  手机版
解决时间 2021-03-10 02:54
Dubbo的分布式事务问题怎么处理
最佳答案
目前比较多的解决方案有几个:
一、结合MQ消息中间件实现的可靠消息最终一致性
二、TCC补偿性事务解决方案
三、最大努力通知型方案
第一种方案:可靠消息最终一致性,需要业务系统结合MQ消息中间件实现,在实现过程中需要保证消息的成功发送及成功消费。即需要通过业务系统控制MQ的消息状态
第二种方案:TCC补偿性,分为三个阶段TRYING-CONFIRMING-CANCELING。每个阶段做不同的处理。
TRYING阶段主要是对业务系统进行检测及资源预留
CONFIRMING阶段是做业务提交,通过TRYING阶段执行成功后,再执行该阶段。默认如果TRYING阶段执行成功,CONFIRMING就一定能成功。
CANCELING阶段是回对业务做回滚,在TRYING阶段中,如果存在分支事务TRYING失败,则需要调用CANCELING将已预留的资源进行释放。
第三种方案:最大努力通知xing型,这种方案主要用在与第三方系统通讯时,比如:调用微信或支付宝支付后的支付结果通知。这种方案也是结合MQ进行实现,例如:通过MQ发送http请求,设置最大通知次数。达到通知次数后即不再通知。
全部回答
分布式事务是一个绕不过去的挑战!微服务架构本质上就是分布式服务化架构,微服务架构的流行,让分布式事务问题日益突出!尤其是在订单业务、资金业务等系统核心业务流程中,一定要有可靠的分布式事务解决方案来保证业务数据的可靠性和准确性。 为了解决大家在实施分布式服务化架构过程中关于分布式事务问题的困扰,本教程将基于支付系统真实业务中的经典场景来对“可靠消息的最终一致性方案”、“tcc两阶段型方案”和“最大努力通知型方案”这3种柔性事务解决方案进行具体设计实现和详细分析。 基于"" ゛龙゛果゛学゛院゛开源的微支付系统进行实现,使用dubbo作为服务化框架,所实现的分布式事务解决方案在java体系中的微服务架构系统都能通用,与具体的开发框架无关。 项目中用到的技术及相应的环境:dubbo、spring、springmvc、mybatis、druid、jdk7(或jdk8)、mysql5.6、tomcat
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
北京地铁10号线二期2012年建成,是途径万寿路
对于下图,下列说法中,哪一个是错误的?()A.
远景和长安CS15汽车哪个好
算命三合是什么意思
在外买社保,够15年不转回老家,以后怎么收养
友谊机电我想知道这个在什么地方
乐队演出时电吉他的音箱问题。
计量操作风险资本要求的高级计量法计量系统要
世界这么大,我却只能用心去感觉。
歌词中有“我想要一双坚强的翅膀”的歌曲
中国移动通信手机连锁卖场昇达店地址在什么地
如何添加字体库
篮球中pt是啥意思
消防水箱应储存10min的消防用水量,10min是火
我的腰经常酸痛,并且有时下半身没什么知觉
推荐资讯
QQ好友给我留了言,为什么空间访客记录里没有
我想问一下,在没有网络的状态下,也可以玩的
体重8.3kg,前囟1cm,出牙4个,能扶床栏杆站
祥露茶艺在哪里啊,我有事要去这个地方
开心吃典鲜鱼坊在什么地方啊,我要过去处理事
【zhaoli】zhaoli汉语
李玉刚——新贵妃醉酒与京剧大师梅兰芳的贵妃
网上办的招行信用卡没选卡会下哪种卡
鼎折足车脱轴 日过午 风吹灯 是什么意思啊?
龙凤苑1地址在哪,我要去那里办事
我给相亲对象送了一条项链,她不要为什么?
耀华红木工艺品厂地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?