【技术实现步骤摘要】
分布式系统的事务处理方法、装置、系统、介质及设备
本公开涉及计算机
,具体地,涉及一种分布式系统的事务处理方法、装置、系统、介质及设备。
技术介绍
随着分布式服务架构的流行与普及,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用,随之而来的挑战就是分布式事务问题。由于每个服务都使用其单独维护的数据库,因此在不同服务的远程调用时对数据的操作并不在同一个事务中,比如服务A调用服务B,服务A执行成功,服务B执行失败,此时由于服务A的事务已经提交,无法回滚,这就会导致数据不一致的问题。现有技术中,在解决服务调用的数据不一致问题时,通常是基于TCC(TCC服务是由Try/Confirm/Cancel业务构成的)、消息最终一致性事务等柔性事务的分布式事务,其中,TCC是基于补偿机制实现的,而消息最终一致事务中,在进行分布式系统的事务处理时,可能会出现服务调用者应用的服务调用请求消息多次重复发送,从而使得服务提供者应用存在同一消息被多次消费的风险。并且在网络中断或网络不稳定时,需要多次重发服务 ...
【技术保护点】
1.一种分布式系统的事务处理方法,其特征在于,所述方法包括:/n拦截服务调用者应用发起的服务调用请求,其中,所述服务调用请求中包含请求调用的服务;/n若所述服务调用请求中存在预设的一致性标识,根据所述请求调用的服务的方法元数据构建事件对象并存储所述事件对象至发布事件列表,其中,所述事件对象的初始状态为未发布;/n从所述发布事件列表中状态为未发布的事件对象中选择目标对象,并将所述目标对象对应的请求消息发布至消息中间件,其中,所述请求消息中包括所述目标对象对应的目标服务的方法元数据,以使提供所述目标服务的服务提供者应用基于所述请求消息提供所述目标服务。/n
【技术特征摘要】
1.一种分布式系统的事务处理方法,其特征在于,所述方法包括:
拦截服务调用者应用发起的服务调用请求,其中,所述服务调用请求中包含请求调用的服务;
若所述服务调用请求中存在预设的一致性标识,根据所述请求调用的服务的方法元数据构建事件对象并存储所述事件对象至发布事件列表,其中,所述事件对象的初始状态为未发布;
从所述发布事件列表中状态为未发布的事件对象中选择目标对象,并将所述目标对象对应的请求消息发布至消息中间件,其中,所述请求消息中包括所述目标对象对应的目标服务的方法元数据,以使提供所述目标服务的服务提供者应用基于所述请求消息提供所述目标服务。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标对象对应的请求消息发布至消息中间件,包括:
将所述请求消息发布至消息中间件中、与所述服务提供者应用的标识信息对应的消息队列中,以由所述服务提供者应用从所述消息队列中获取所述请求消息。
3.根据权利要求1所述的方法,其特征在在于,所述服务调用者应用初始化有发布锁;在所述从所述发布事件列表中状态为未发布的事件对象中选择目标对象的步骤之前,所述方法还包括:
确定所述发布锁的状态;
若所述发布锁的状态为空闲状态,将所述发布锁的状态更新为使用状态,并执行所述从所述发布事件列表中状态为未发布的事件对象中选择目标对象的步骤;
在所述将所述目标对象对应的请求消息发布至消息中间件的步骤之后,所述方法还包括:
将所述发布锁的状态更新为空闲状态。
4.一种分布式系统的事务处理方法,其特征在于,应用于服务提供者应用,所述方法包括:
从消息中间件获取请求消息,其中,所述请求消息中包括服务的方法元数据;
根据所述服务的方法元数据构建事件对象并存储所述事件对象至处理事件列表中,其中,所述事件对象的初始状态为未处理;
从所述处理事件列表中状态为未处理的事件对象中选择目标对象,并根据所述目标对象对应的目标服务的方法元数据,执行所述目标服务的方法,以为发起所述目标对象对应的请求消息的服务调用者应用提供所述目标服务。
5.根据权利要求4所述的方法,其特征在于,所述从消息中间件获取请求消息,包括:
从所...
【专利技术属性】
技术研发人员:陆国际,张霞,葛东,贾璐,邢铁军,
申请(专利权)人:东软集团股份有限公司,
类型:发明
国别省市:辽宁;21
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。