[发明专利]一种基于MQ PaaS的事务消息处理方法及装置有效
| 申请号: | 202210376772.X | 申请日: | 2022-04-12 |
| 公开(公告)号: | CN114466071B | 公开(公告)日: | 2022-07-29 |
| 发明(设计)人: | 易存道 | 申请(专利权)人: | 北京宝兰德软件股份有限公司 |
| 主分类号: | H04L67/566 | 分类号: | H04L67/566;H04L67/562 |
| 代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 张文玄 |
| 地址: | 100020 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 mq paas 事务 消息 处理 方法 装置 | ||
本发明提供一种基于MQ PaaS的事务消息处理方法及装置,其中的事务消息处理方法包括:获取目标事务消息,目标事务消息包括消息生产者的分组信息;根据目标事务消息的本地事务执行结果,对目标事务消息进行处理;其中,若本地事务执行结果为不知情,则根据消息生产者的分组信息,回查本地事务执行结果,该方法解决了现有技术中无法在MQ PaaS平台架构下实现事务消息的缺陷,使MQ PaaS平台架构下实现事务消息成为可能。
技术领域
本发明涉及消息处理技术领域,尤其涉及一种基于MQ PaaS的事务消息处理方法及装置。
背景技术
目前通用的分布式事务实现方式包括两阶段提交(2 Phase Commit,简称2PC)、三阶段提交(3 Phase Commit,简称3PC)、两阶段补型事务(Try-Confirm-Concel,简称TCC)、事务消息和消息表,但对于MQ(Message Queue,简称消息队列)PaaS(Platform as aService,简称平台即服务)分布式消息平台而言,2PC、3PC和 TCC这些事务实现方式都过于复杂,不太适用,可行的是基于消息表和RocketMQ原生的事务实现方式。
对于基于消息表的事务实现方式,由于消息表基于关系型数据库,要求使用业务系统的数据库,还要求消息表与业务系统处在同一个事务中,所以,SDK(SoftwareDevelopment Kit,简称软件开发工具包)需要预先或者按照需求在业务数据库中创建消息表,而在业务数据库中创建消息表的操作对业务都有一定的侵入性,因此,对于分布式事务消息的实现而言,使用消息表的方式并不是首选,
对于RocketMQ原生的事务实现方式,事务实现的流程为:1)事务发起方首先发送准备消息到MQ;2)事务发起方在发送准备消息成功后执行本地事务;3) 根据本地事务执行结果返回commit(提交)或者是rollback(回滚);4) 如果返回rollback,MQ将删除该准备消息不进行发送;如果返回commit,MQ将会把这个消息发送给Consumer端;5)如果执行本地事务过程中,执行端挂掉,或者超时,MQ将会不停地询问同组的其他producer来获取状态;6)Consumer端的消费成功机制由MQ保证。但该事务实现方式在MQ PaaS平台架构下,由于SDK并不与Broker(缓存代理)直连,无法回查本地事务状态,不能完整地实现事务消息。
因此,如何解决现有技术中无法在MQ PaaS平台架构下实现事务消息的问题,是消息处理技术领域亟待解决的重要课题。
发明内容
本发明提供一种基于MQ PaaS的事务消息处理方法及装置,用以解决现有技术中无法在MQ PaaS平台架构下实现事务消息的缺陷,以实现MQ PaaS平台架构下的事务消息。
一方面,本发明提供一种基于MQ PaaS的事务消息处理方法,包括:获取目标事务消息,所述目标事务消息包括消息生产者的分组信息;根据所述目标事务消息的本地事务执行结果,对所述目标事务消息进行处理;其中,若所述本地事务执行结果为不知情,则根据所述消息生产者的分组信息,回查所述本地事务执行结果。
进一步地,所述若所述本地事务执行结果为不知情,则根据所述消息生产者的分组信息,回查所述本地事务执行结果,包括:根据所述消息生产者的分组信息,依次查询生产者代理;基于所述生产者代理的查询反馈信息,回查所述本地事务执行结果。
进一步地,所述基于所述生产者代理的查询反馈信息,回查所述本地事务执行结果,包括:若查询的生产者代理为目标生产者代理,则响应所述目标生产者的查询确认信息,回查所述本地事务执行结果;若查询的生产者代理为非目标生产者代理,则响应所述非目标生产者代理的查询否定信息,继续查询其他尚未被查询的生产者代理。
进一步地,所述基于MQ PaaS的事务消息处理方法还包括:若回查得到的所述本地事务执行结果为不知情,则重复回查操作;若回查次数达到预设回查次数时,所述本地事务执行结果仍为不知情,则结束所述回查操作,并删除所述目标事务消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京宝兰德软件股份有限公司,未经北京宝兰德软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210376772.X/2.html,转载请声明来源钻瓜专利网。





