[发明专利]一种基于消息队列的分布式事务处理方法及系统在审
申请号: | 201911404579.7 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111158933A | 公开(公告)日: | 2020-05-15 |
发明(设计)人: | 王海峰 | 申请(专利权)人: | 易票联支付有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 谭英强;黎扬鹏 |
地址: | 510000 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 消息 队列 分布式 事务处理 方法 系统 | ||
本发明公开了一种基于消息队列的分布式事务处理方法及系统,方法包括:对发送的消息进行顺序编号;将发送的消息及其顺序编号写入发送日志;发送消息给服务端,使服务端获取消息的顺序编号并与第一数据库中存储的顺序编号进行比较,当二者的顺序编号不连续则确定缺漏的起始顺序编号和结束顺序编号,当二者的顺序编号连续则将消息发送给消息队列;根据起始顺序编号和结束顺序编号从发送日志中获取缺漏数据,并将缺漏数据发送给服务端。本发明利用了发送日志和在第一数据库这一非关系型数据库中存储的顺序编号来保证消息发送成功,从而确保了消息队列与业务系统的数据一致性,也简化了业务系统的开发过程。本发明可广泛应用于计算机技术领域。
技术领域
本发明涉及计算机技术领域,尤其是一种基于消息队列的分布式事务处理方法及系统。
背景技术
随着互联网及计算机技术的不断发展,分布式系统以其高扩展性、高可用性、高可靠性及高效性等特点被广泛应用。随着IT(Information Technology,信息技术)系统的复杂度越来越高,为解决分布式系统的性能和数据问题,通过事件源构建业务系统越来越重要,MQ(messagequeue,消息队列)因具有解耦、异步等优点在事件源中也被大规模使用。
然而,传统的MQ不支持基于关系型数据库的事务,导致MQ与业务系统数据存在一致性的问题,也增加业务系统开发的复杂性。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出了一种基于消息队列的分布式事务处理方法及系统,能保证消息发送成功以及数据的一致性。
根据本发明的第一方面实施例的一种基于消息队列的分布式事务处理方法,用于发送端,包括以下步骤:
对发送的消息进行顺序编号;
将发送的消息及其顺序编号写入发送日志;
发送消息给服务端,使所述服务端获取所述消息的顺序编号并与第一数据库中存储的顺序编号进行比较,当二者的顺序编号不连续则确定缺漏的起始顺序编号和结束顺序编号,当二者的顺序编号连续则将所述消息发送给消息队列;
根据所述起始顺序编号和所述结束顺序编号从所述发送日志中获取缺漏数据,并将所述缺漏数据发送给所述服务端;
其中,所述第一数据库为非关系型数据库。
进一步,所述将发送的消息及其顺序编号写入发送日志这一步骤,具体为:
在发送日志中写入发送时间、顺序编号、发送端标识、消息的散列值和消息内容。
进一步,所述根据所述起始顺序编号和所述结束顺序编号从所述发送日志中获取缺漏数据,并将所述缺漏数据发送给所述服务端这一步骤,具体包括:
将所述起始顺序编号和所述结束顺序编号加入数据缺漏任务处理列表并发送给数据修复线程;
通过所述数据修复线程根据所述起始顺序编号和所述结束顺序编号解析所述发送日志,获取缺漏数据;
将所述缺漏数据重新发送给所述服务端。
根据本发明的第二方面实施例的一种基于消息队列的分布式事务处理方法,用于服务端,包括以下步骤:
接收发送端发送的消息;
获取所述消息的顺序编号作为当前编号;
从第一数据库中获取存储的所述发送端的顺序编号作为上一次编号;
确定所述当前编号与所述上一次编号为不连续的编号,将缺漏的起始顺序编号和结束顺序编号返回给发送端,使发送端根据所述起始顺序编号和所述结束顺序编号从所述消息的发送日志中获取缺漏数据后重新发送给服务端;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于易票联支付有限公司,未经易票联支付有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911404579.7/2.html,转载请声明来源钻瓜专利网。