[发明专利]事务消息的处理方法、装置及电子设备有效
申请号: | 201710972967.X | 申请日: | 2017-10-18 |
公开(公告)号: | CN109684045B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 姜宇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54 |
代理公司: | 广州铸智知识产权代理有限公司 44886 | 代理人: | 徐瑞红 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事务 消息 处理 方法 装置 电子设备 | ||
本发明实施例提供一种事务消息的处理方法、装置及电子设备,其中,方法包括:向事务协调器发送用于开启全局事务的请求,获取本次全局事务的事务ID和所包含的消息分支的ID;向消息中间件发送本次全局事务涉及的预备消息,并将从所述消息中间件接收的消息发送结果上报至所述事务协调器,以指示将所述消息发送结果与所述消息分支的分支ID关联;执行所述全局事务包含的各事务分支;向所述事务协调器发送提交或回滚全局事务的请求,以根据所述事务协调器返回的指示,对所述全局事务所包含的各事务分支和消息分支进行提交或回滚。本发明实施例的方案能够摒弃在应用中额外设置回查接口所带来的麻烦,并且能够保证事务和消息处理上的一致性。
技术领域
本申请涉及计算机技术领域,尤其涉及一种事务消息的处理方法、装置及电子设备。
背景技术
分布式事务系统通常包含客户端、资源管理器、事务协调器几个角色。客户端与资源管理器部署在应用侧;事务协调器独立部署,负责协调一个分布式事务从开始到完成的所有相关处理流程,是系统核心角色。
现有技术实现事务消息,通常是基于消息中间件的类似X/Open XA的两阶段提交,把数据库本地事务和消息发送放在了一个分布式事务里,保证要么本地事务成功并且对外发消息成功,要么两者都失败。消息中间件提供的事务消息功能,需要用户在应用中写回查接口,并加一些业务逻辑来保存本地事务的执行状态和相应的清理逻辑。如图1所示,为事务消息的典型流程。图1中,应用发送预备消息到消息中间件,消息中间件保存预备消息,但是这个消息目前不可消费,也就是说别的应用或系统无法接收到这个消息;消息发送成功后,应用执行本地事务;待本地事务成功提交后,提交刚才发送的那个预备消息,此时消息可消费,其他接收者收到该消息后其业务继续推进。
如果上面某一步失败,应用可以回滚预备消息,逻辑比较简单,不在此详细分析。比较麻烦的是,应用在提交消息或回滚消息前宕机,消息中间件收到一个预备消息后,在超时前没收到应用发送的提交或回滚消息的指令。这时,消息中间件就需要用到应用提供的回查接口,在超时后调用该回查接口,得到应用本地的事务状态,如果事务执行成功则提交消息让消息可消费,如果事务执行失败则回滚预备消息。如图2所示,为相应的消息流程图。
现有技术缺陷总结:
1,现有技术实现事务消息比较复杂,用户需要在应用中增加业务逻辑,实现回查接口。回查接口要完成的工作是,当消息中间件输入一个消息ID时,应用可返回消息ID相应的数据库本地事务是否成功的状态消息。消息中间件以此为依据进行消息提交或回滚。
2,为了实现这样一个回查接口,需要应用持久化本地事务状态,以及事务与消息之间的对应关系,需要保证接口幂等,允许多次调用,不影响业务逻辑。在实际操作中,持久化的状态信息肯定不能堆积下去,需要清理,多长时间清理也是一个问题,因为需要确定消息中间件在此之后一定不会再回查这些事务状态。
3,一个应用中通常有多处事务消息,这就需要实现很多回查接口,给应用开发、维护、升级都带来很多复杂性。
发明内容
本发明提供了一种事务消息的处理方法、装置及电子设备,能够摒弃在应用中额外设置回查接口所带来的麻烦,并且能够保证事务和消息处理上的一致性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种事务消息的处理方法,包括:
向事务协调器发送用于开启全局事务的请求,获取本次全局事务的事务ID和所包含的消息分支的ID;
向消息中间件发送本次全局事务涉及的预备消息,并将从所述消息中间件接收的消息发送结果上报至所述事务协调器,以指示将所述消息发送结果与所述消息分支的分支ID关联;
执行所述全局事务包含的各事务分支;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710972967.X/2.html,转载请声明来源钻瓜专利网。