跨系统分布式事务处理方法和分布式事务处理的系统技术方案

技术编号:21377800 阅读:53 留言:0更新日期:2019-06-15 13:26
本发明专利技术提供了一种跨系统分布式事务处理方法和分布式事务处理的系统。该方法包括:主系统开启分布式事务;主系统向分系统发送尝试执行事务的尝试请求;分系统响应于尝试请求,执行尝试操作;分系统将尝试操作的执行结果反馈至主系统;主系统根据接收到的执行结果向消息服务系统发送消息,其中,当主系统收到的执行结果均为成功时,向消息服务系统发送确定执行事务的确认消息,当主系统接收到任一执行结果为失败时,向消息服务系统发送回滚执行事务的回滚消息;消息服务系统发布接收到的消息;分系统监听消息服务系统发布的消息,当监听到确认消息时,执行确认操作,当监听到回滚消息时,执行回滚操作。通过本发明专利技术,能够避免上述中心化单点现象。

【技术实现步骤摘要】
跨系统分布式事务处理方法和分布式事务处理的系统
本专利技术涉及分布式事务处理
,尤其涉及一种跨系统分布式事务处理方法和分布式事务处理的系统,以及计算机设备和计算机可读存储介质。
技术介绍
跨系统分布式事务处理是为了解决应用拆分带来的跨系统业务操作原子性的问题,例如:商城系统涉及营销系统、积分支付系统和收银台系统等,在购买商品时,会同时使用到券、积分、电子账户的支付,因此需要通过跨系统分布式事务处理,确保用户的一个购买动作涉及到的多个支付过程都在一个事务中执行。在跨系统分布式事务处理方法中,通常会采用TCC的方案,其中,TCC包括了三个动作,分别是try(尝试操作)、confirm(确认操作)、cancel(回滚操作),现有技术的跨系统分布式事务处理方案会存在一个事务协调器,来控制整个TCC的过程,所有涉及分布式事务的接口都会依赖这个事务协调器,一旦事务协调器出现问题,会导致整个业务异常,存在中心化单点现象。因此,提供一种跨系统分布式事务处理方法和分布式事务处理的系统,以避免上述中心化单点现象,是本领域需要解决的技术问题。
技术实现思路
本专利技术的目的是提供一种跨系统分布式事务处理本文档来自技高网...

【技术保护点】
1.一种跨系统分布式事务处理方法,其特征在于,包括:主系统开启分布式事务,其中,所述分布式事务包括若干子事务,每个所述子事务由一个分系统处理;所述主系统向所述分系统发送尝试执行事务的尝试请求;所述分系统响应于所述尝试请求,执行尝试操作;所述分系统将所述尝试操作的执行结果反馈至所述主系统;所述主系统根据接收到的所述执行结果向消息服务系统发送消息,其中,当所述主系统收到的所述执行结果均为成功时,向所述消息服务系统发送确定执行事务的确认消息,当所述主系统接收到任一所述执行结果为失败时,向所述消息服务系统发送回滚执行事务的回滚消息;所述消息服务系统发布接收到的消息;所述分系统监听所述消息服务系统发布的...

【技术特征摘要】
1.一种跨系统分布式事务处理方法,其特征在于,包括:主系统开启分布式事务,其中,所述分布式事务包括若干子事务,每个所述子事务由一个分系统处理;所述主系统向所述分系统发送尝试执行事务的尝试请求;所述分系统响应于所述尝试请求,执行尝试操作;所述分系统将所述尝试操作的执行结果反馈至所述主系统;所述主系统根据接收到的所述执行结果向消息服务系统发送消息,其中,当所述主系统收到的所述执行结果均为成功时,向所述消息服务系统发送确定执行事务的确认消息,当所述主系统接收到任一所述执行结果为失败时,向所述消息服务系统发送回滚执行事务的回滚消息;所述消息服务系统发布接收到的消息;所述分系统监听所述消息服务系统发布的消息,当监听到所述确认消息时,执行确认操作,当监听到所述回滚消息时,执行回滚操作。2.根据权利要求1所述的跨系统分布式事务处理方法,其特征在于,所述主系统对应的数据库中设置有第一事务表,所述分系统对应的数据库中设置有第二事务表;所述主系统开启分布式事务的步骤包括:所述主系统在所述第一事务表中插入所述分布式事务,并设置所述分布式事务的状态为事务开始;所述跨系统分布式事务处理方法还包括:所述主系统在接收到所述执行结果之后,向所述消息服务系统发送所述消息之前,将所述分布式事务的状态修改为尝试完成;所述主系统向所述消息服务系统发送所述确认消息后,将所述分布式事务的状态修改为确认完成;所述主系统向所述消息服务系统发送所述回滚消息后,将所述分布式事务的状态修改为回滚完成;所述分系统在执行所述尝试操作后,在所述第二事务表中插入所述子事务,并设置所述子事务的状态为所述尝试完成;所述分系统在监听到所述确认消息后,执行所述确认操作前,将所述子事务的状态修改为确认中;所述分系统在执行所述确认操作后,将所述子事务的状态修改为所述确认完成;所述分系统在监听到所述回滚消息后,执行所述回滚操作前,将所述子事务的状态修改为回滚中;所述分系统在执行所述回滚操作后,将所述子事务的状态修改为所述回滚完成。3.根据权利要求2所述的跨系统分布式事务处理方法,其特征在于,所述跨系统分布式事务处理方法还包括:调度任务系统查询所述第一事务表中所述分布式事务的状态和所述第二事务表中所述子事务的状态;当所述第一事务表中所述分布式事务的状态为确认完成,所述第二事务表中所述子事务的状态为尝试完成时,所述调度任务系统向所述分系统发送执行确认操作的命令;当所述第一事务表中所述分布式事务的状态为回滚完成,所述第二事务表中所述子事务的状态为尝试完成时,所述调度任务系统向所述分系统发送执行回滚操作的命令;所述分系统接收到所述执行确认操作的命令时,执行确认操作,接收到所述执行回滚操作的命令时,执行回滚操作。4.根据权利要求3所述的跨系统分布式事务处理方法,其特征在于,所述跨系统分布式事务处理方法还包括:所述分系统接收到所述执行确认操作的命令后,执行确认操作前,或者,所述分系统接收到所述执行回滚操作的命令后,执行回滚操作前,修改并读取所述第二事务表中所述子事务对应的重试次...

【专利技术属性】
技术研发人员:王冬冬
申请(专利权)人:深圳壹账通智能科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1