[发明专利]一种基于消息队列的分布式系统数据最终一致性方法在审
申请号: | 202011537989.1 | 申请日: | 2020-12-23 |
公开(公告)号: | CN112579620A | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 张萃;蒋秋明 | 申请(专利权)人: | 上海上实龙创智能科技股份有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/27;G06F9/54 |
代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 林君如 |
地址: | 200436 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 消息 队列 分布式 系统 数据 最终 一致性 方法 | ||
本发明涉及一种基于消息队列的分布式系统数据最终一致性方法,用于保持分布式系统中不同微服务之间的数据一致性,包括以下步骤:S1:分布式系统获取用户的操作以及该操作对应的数据更改请求;S2:将数据更改请求记录到数据库,并传递至作为中间件的消息队列;S3:对应需要修改数据的微服务调用消息队列中的数据更改请求进行数据更改,并根据处理情况反馈结果;S4:通过查询反馈结果判断对应需要修改数据的微服务是否均处理成功,若是,则完成本次数据最终一致性流程,否则返回执行步骤S3。与现有技术相比,本发明具有可靠性高等优点。
技术领域
本发明涉及数据处理领域,尤其是涉及一种基于消息队列的分布式系统数据最终一致性方法。
背景技术
分布式数据库是一种不是所有的存储装置都被连接到共同的中央处理单元(CPU)的数据库。分布式数据库可以被存储在位于同一物理位置的多台计算机中,或可以分散在处于多个物理位置的互连的计算机网络。分布式系统的位置或场所可能分布在大的区域,或在一个小的区域(如建筑物或校园)。在分布式数据库中的数据集合也可以分布在多个物理位置。
随着微服务架构的盛行,分布式事务成为大部分企业集成中的一个技术难点,而在企业进行分布式事务处理过程中,保障企业各事务数据副本的一致性,是企业分布式事务最重要的一环,为此,本申请中提出一种基于消息服务保障分布式系统数据最终一致性的方法。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种可靠性高的基于消息队列的分布式系统数据最终一致性方法。
本发明的目的可以通过以下技术方案来实现:
一种基于消息队列的分布式系统数据最终一致性方法,用于保持分布式系统中不同微服务之间的数据一致性,包括以下步骤:
S1:分布式系统获取用户的操作以及该操作对应的数据更改请求;
S2:将数据更改请求记录到数据库,并传递至作为中间件的消息队列;
S3:对应需要修改数据的微服务调用消息队列中的数据更改请求进行数据更改,并根据处理情况反馈结果;
S4:通过查询反馈结果判断对应需要修改数据的微服务是否均处理成功,若是,则完成本次数据最终一致性流程,否则返回执行步骤S3。
进一步地,所述的步骤S3中,对于每一个微服务的每一次调用都设置一个全局唯一标识,所述的步骤S4中,通过该全局唯一标识查询每一个微服务的每一次调用对应的反馈结果。
更进一步地,所述的全局唯一标识包括业务单据号、操作流水号或操作组合标识。
更进一步地,所述的分布式系统为用于处理订单业务的分布式系统,所述的全局唯一标识包括订单号、支付记录流水号或商户号+商户订单号。
进一步地,所述的步骤S3中,对应的微服务调用消息队列中的数据更改请求进行数据更改的步骤具体包括:
S31:对应微服务调用消息队列中的数据更改请求,并通过业务处理服务向实时消息服务器发送数据更改请求消息;
S32:实时消息服务器记录数据更改请求消息;
S33:业务处理服务判断该数据更改请求是否已经执行,若是,则控制实时消息服务器取消该数据更改请求消息的发送,否则控制实时消息服务器进行该数据更改请求消息的发送。
更进一步地,所述的步骤S33具体包括:
S331:业务处理服务根据数据更改请求的ID,查询是否存在重复请求,若是,则执行步骤S332,否则执行步骤S333;
S332:业务处理服务向实时消息服务器发送确认发送指令,并执行步骤S334;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海上实龙创智能科技股份有限公司,未经上海上实龙创智能科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011537989.1/2.html,转载请声明来源钻瓜专利网。