[发明专利]分布式系统的事务处理方法、装置、系统、介质及设备在审
申请号: | 201911236917.0 | 申请日: | 2019-12-05 |
公开(公告)号: | CN111258723A | 公开(公告)日: | 2020-06-09 |
发明(设计)人: | 陆国际;张霞;葛东;贾璐;邢铁军 | 申请(专利权)人: | 东软集团股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54 |
代理公司: | 北京英创嘉友知识产权代理事务所(普通合伙) 11447 | 代理人: | 魏嘉熹 |
地址: | 110179 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 系统 事务处理 方法 装置 介质 设备 | ||
本公开涉及一种分布式系统的事务处理方法、装置、系统、介质及设备,所述方法包括:拦截服务调用者应用发起的服务调用请求,其中,服务调用请求中包含请求调用的服务;若所述服务调用请求中存在预设的一致性标识,根据所述请求调用的服务的方法元数据构建事件对象并存储所述事件对象至发布事件列表,其中,所述事件对象的初始状态为未发布;从所述发布事件列表中状态为未发布的事件对象中选择目标对象,并将所述目标对象对应的请求消息发布至消息中间件,所述请求消息中包括所述目标对象对应的目标服务的方法元数据,以使提供所述目标服务的服务提供者应用基于所述请求消息提供所述目标服务。由此,可以保证分布式系统的事务处理最终一致性。
技术领域
本公开涉及计算机技术领域,具体地,涉及一种分布式系统的事务处理方法、装置、系统、介质及设备。
背景技术
随着分布式服务架构的流行与普及,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用,随之而来的挑战就是分布式事务问题。由于每个服务都使用其单独维护的数据库,因此在不同服务的远程调用时对数据的操作并不在同一个事务中,比如服务A调用服务B,服务A执行成功,服务B执行失败,此时由于服务A的事务已经提交,无法回滚,这就会导致数据不一致的问题。
现有技术中,在解决服务调用的数据不一致问题时,通常是基于TCC (TCC服务是由Try/Confirm/Cancel业务构成的)、消息最终一致性事务等柔性事务的分布式事务,其中,TCC是基于补偿机制实现的,而消息最终一致事务中,在进行分布式系统的事务处理时,可能会出现服务调用者应用的服务调用请求消息多次重复发送,从而使得服务提供者应用存在同一消息被多次消费的风险。并且在网络中断或网络不稳定时,需要多次重发服务调用请求或确认消息以实现服务调用者应用和服务提供者应用的事务交互。
发明内容
本公开的目的是提供一种安全、稳定地分布式系统的事务处理方法、装置、系统、介质及设备。
为了实现上述目的,根据本公开的第一方面,提供一种分布式系统的事务处理方法,所述方法包括:
拦截服务调用者应用发起的服务调用请求,其中,所述服务调用请求中包含请求调用的服务;
若所述服务调用请求中存在预设的一致性标识,根据所述请求调用的服务的方法元数据构建事件对象并存储所述事件对象至发布事件列表,其中,所述事件对象的初始状态为未发布;
从所述发布事件列表中状态为未发布的事件对象中选择目标对象,并将所述目标对象对应的请求消息发布至消息中间件,其中,所述请求消息中包括所述目标对象对应的目标服务的方法元数据,以使提供所述目标服务的服务提供者应用基于所述请求消息提供所述目标服务。
可选地,所述将所述目标对象对应的请求消息发布至消息中间件,包括:
将所述请求消息发布至消息中间件中、与所述服务提供者应用的标识信息对应的消息队列中,以由所述服务提供者应用从所述消息队列中获取所述请求消息。
可选地,所述服务调用者应用初始化有发布锁;在所述从所述发布事件列表中状态为未发布的事件对象中选择目标对象的步骤之前,所述方法还包括:
确定所述发布锁的状态;
若所述发布锁的状态为空闲状态,将所述发布锁的状态更新为使用状态,并执行所述从所述发布事件列表中状态为未发布的事件对象中选择目标对象的步骤;
在所述将所述目标对象对应的请求消息发布至消息中间件的步骤之后,所述方法还包括:
将所述发布锁的状态更新为空闲状态。
根据本公开的第二方面,提供一种分布式系统的事务处理方法,应用于服务提供者应用,所述方法包括:
从消息中间件获取请求消息,其中,所述请求消息中包括服务的方法元数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911236917.0/2.html,转载请声明来源钻瓜专利网。