[发明专利]事务消息的发送方法和装置有效
申请号: | 201510058248.8 | 申请日: | 2015-02-04 |
公开(公告)号: | CN105988861B | 公开(公告)日: | 2019-06-11 |
发明(设计)人: | 朱春茂;林耿 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;H04L12/18 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张大威 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息标识 事务消息 事务 发送 方法和装置 记录 查询数据库 接收消息 逻辑判断 事务提交 数据结构 消息中心 携带 复杂度 投递 查询 | ||
本发明提出一种事务消息的发送方法和装置,上述事务消息的发送方法包括:接收消息中心发送的事务回查请求,所述事务回查请求中携带消息标识,用于请求查询所述消息标识对应的本地事务的提交状态;查询数据库中是否存在所述消息标识对应的事务回查记录;如果存在,则通知所述消息中心投递携带所述消息标识的消息。本发明通过增加事务回查记录的数据结构,将复杂的逻辑判断改为对事务回查记录的存在性判断,从而大大降低了事务提交状态的判断复杂度。
技术领域
本发明涉及互联网技术领域,尤其涉及一种事务消息的发送方法和装置。
背景技术
事务是并发控制的单位,是用户定义的一个操作序列,具体来说,事务就是访问数据库时一系列的逻辑相关动作。比如列车订票系统中选择目的地(或车次)、选择日期和时间、选择座位(或上下铺)、出票(总票数减一张)和付费,这一系列的业务处理构成一个事务。
事务中的业务处理要么都执行,要么都不执行,是一个不可分割的工作单位。通过事务,服务器可以将逻辑相关的一组业务绑定在一起,以便服务器保持数据的完整性。
需要发送带事务的消息时,应用系统会在业务处理的过程中向消息中心投递一个消息,但是这时消息中心不会立即将消息投递出去,在本地事务提交后,应用系统会向消息中心发送事务提交信息,以通知消息中心可以将消息投递出去,这时消息中心才会将消息投递出去。
但是应用系统向消息中心发送事务提交信息这一步骤可能由于网络调用超时或者其他原因断掉,导致消息中心无法确认消息是需要投递,还是删除,所以消息中心会发起事务回查,以确保应用系统的本地事务的提交状态与消息的投递状态一致。
现有技术中,事务提交状态的判断是根据业务数据的状态来进行的,但是由于事务中各业务对数据的更改,所以业务数据的状态的判断是非常复杂的,执行难度较大。
发明内容
本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种事务消息的发送方法。该方法通过增加事务回查记录的数据结构,将复杂的逻辑判断改为对事务回查记录的存在性判断,从而大大降低了事务提交状态的判断复杂度。
本发明的第二个目的在于提出一种事务消息的发送装置。
为了实现上述目的,本发明第一方面实施例的事务消息的发送方法,包括:接收消息中心发送的事务回查请求,所述事务回查请求中携带消息标识,用于请求查询所述消息标识对应的本地事务的提交状态;查询数据库中是否存在所述消息标识对应的事务回查记录;如果存在,则通知所述消息中心投递携带所述消息标识的消息。
本发明实施例的事务消息的发送方法,接收消息中心发送的事务回查请求,当查询到数据库中存在上述事务回查请求中携带的消息标识对应的事务回查记录时,就可以确定上述消息标识对应的本地事务已提交,于是就可以通知消息中心投递携带上述消息标识的消息,从而可以通过增加事务回查记录的数据结构,将复杂的逻辑判断改为对事务回查记录的存在性判断,大大降低了事务提交状态的判断复杂度。
为了实现上述目的,本发明第二方面实施例的事务消息的发送装置,包括:接收模块,用于接收消息中心发送的事务回查请求,所述事务回查请求中携带消息标识,用于请求查询所述消息标识对应的本地事务的提交状态;查询模块,用于查询数据库中是否存在所述接收模块接收的消息标识对应的事务回查记录;通知模块,用于当所述查询模块确定所述数据库中存在所述接收模块接收的消息标识对应的事务回查记录时,通知所述消息中心投递携带所述消息标识的消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510058248.8/2.html,转载请声明来源钻瓜专利网。