[发明专利]分布式事务处理方法及装置有效
| 申请号: | 201811159001.5 | 申请日: | 2018-09-30 |
| 公开(公告)号: | CN110968586B | 公开(公告)日: | 2023-08-25 |
| 发明(设计)人: | 梁洪波 | 申请(专利权)人: | 北京国双科技有限公司 |
| 主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/27 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 史翠;王宝筠 |
| 地址: | 100083 北京市海淀区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 分布式 事务处理 方法 装置 | ||
本发明公开了一种分布式事务处理方法及装置,该方法采用事件总线作为发布方与订阅方之间的通信媒介,发布方向事件总线发布事件,同时,向消息队列发送与该事件相关联的业务数据;然后,由事件总线将该事件分发给相应的订阅方,实现事务与业务数据的消息队列的解耦。而且,事件总线记录发布方及订阅方操作事件后的事件状态,保证事件处理的一致性;事件总线确定该事件的事件状态并发送至发布方,以使发布方执行相应的操作。由上述过程可知,采用事件总线机制有效解耦了事务与业务数据的消息队列,即有效解耦了微服务与消息队列;而且,事件状态由事件总线记录并更新,因此,微服务变得更轻量,降低了微服务的开发和维护成本。
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式事务处理方法及装置。
背景技术
事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。当事务被提交给DBMS(数据库管理系统),则DBMS需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其它事务的执行无影响,所有的事务都好像在独立运行。
分布式事务就是在分布环境下运行的事务,对于分布式事务来说,事务的每个操作步骤可能是运行在不同机器的服务上。分布式事务处理的关键是必须有一种方法能够知道一个事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果,即全部提交或全部回滚。分布式系统具有CAP定律,该定律的内容是指在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。
根据CAP定律,在分布式系统中,最多只能实现其中的两个,因此,在分布式系统中如何解决CAP成为目前亟需解决的问题。
发明内容
鉴于上述问题,提出了本发明提供了一种分布式事务处理方法及装置,以解决现有的异步确保方式消息表耦合到业务系统中导致实际应用麻烦、后期维护成本高的技术问题。
第一方面,本申请提供了一种分布式事务处理方法,包括:
事件总线接收发布方发送的事件,并记录所述事件的事件状态;
事件总线从消息队列中获取与所述事件关联的业务数据,所述业务数据由所述发布方在发布所述事件时发送至所述消息队列;
事件总线将该事件及该事件关联的业务数据发送至订阅该事件的目标订阅方;
事件总线根据所述目标订阅方返回的所述事件的响应消息,更新所述事件对应的事件状态;
事件总线确定所述事件对应的事件状态,并将所述事件状态发送至所述事件对应的发布方,以使所述发布方执行与所述事件状态相对应的操作。
可选地,记录所述事件的事件状态,包括:
所述事件总线在消息表中记录所述事件的事件标识及对应的事件状态,所述事件标识是识别事件的唯一标识。
可选地,记录所述事件的事件状态,包括:
所述事件总线在消息表中记录所述事件对应的事件标识、事件状态及该事件关联的订阅方标识;
其中,所述事件标识是识别事件的唯一标识,所述订阅方标识是识别订阅事件一方的唯一标识。
可选地,记录所述事件的事件状态,包括:
所述事件总线在消息表中记录所述事件对应的事件标识、事件状态,以及与该事件关联的发布方标识、订阅方标识;
其中,所述事件标识是识别事件的唯一标识,所述发布方标识是识别发布事件一方的唯一标识,所述订阅方标识是订阅事件一方的唯一标识。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811159001.5/2.html,转载请声明来源钻瓜专利网。





