[发明专利]基于微服务架构的数据一致性方法以及装置有效
申请号: | 201711421347.3 | 申请日: | 2017-12-25 |
公开(公告)号: | CN108153598B | 公开(公告)日: | 2021-06-25 |
发明(设计)人: | 孙浩;张延凤;张庚昕;刘志鹏 | 申请(专利权)人: | 东软集团股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/46 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 张润 |
地址: | 110179 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 微服 架构 数据一致性 方法 以及 装置 | ||
本发明提出一种基于微服务架构的数据一致性方法以及装置,其中方法包括:通过接收上游应用在执行上游业务前发送的待确认消息,保存待确认消息,并向上游应用返回待确认消息对应的响应消息;若在第一时间范围内接收到确认消息,则确定上游业务执行完毕,将待确认消息传递至活动日志,以便下游业务监听并执行;确认消息为上游应用根据响应消息执行上游业务后的确认消息;若在第一时间范围内未接收到确认消息,则查询上游应用的上游业务是否已执行,并根据查询结果确定删除待确认消息还是将待确认消息传递至活动日志,从而保证上游应用与活动管理器之间数据的一致性,进而确保上游应用与下游应用之间数据的一致性。
技术领域
本发明涉及微服务技术领域,尤其涉及一种基于微服务架构的数据一致性方法以及装置。
背景技术
目前,在基于微服务架构的业务平台,例如电商平台上,当用户下单并支付后,电商平台需要修改订单的状态并且增加用户积分。由于电商平台采用的是微服务架构,分离出了支付服务、订单服务和积分服务,每个服务都有独立数据库做数据存储。当用户支付成功后,若订单服务未修改订单状态或者积分服务未修改积分,则导致支付服务、订单服务和积分服务之间数据的不一致。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种基于微服务架构的数据一致性方法,用于解决现有技术中难以保证各服务之间数据一致性的问题。
本发明的第二个目的在于提出一种基于微服务架构的数据一致性装置。
本发明的第三个目的在于提出另一种基于微服务架构的数据一致性装置。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
本发明的第五个目的在于提出一种计算机程序产品。
为达上述目的,本发明第一方面实施例提出了一种基于微服务架构的数据一致性方法,包括:
接收上游应用在执行上游业务前发送的待确认消息,保存所述待确认消息,并向所述上游应用返回所述待确认消息对应的响应消息;
判断是否在第一时间范围内接收到所述上游应用发送的确认消息,所述确认消息为所述上游应用根据所述响应消息执行上游业务后的确认消息;
在第一时间范围内未接收到所述确认消息时,向上游应用发送查询请求;
在接收到上游应用的上游业务已执行的消息时,将待确认消息的待确认状态修改为发送状态,并将修改为发送状态的消息传递至活动日志,以使下游应用监听所述活动日志中的消息,根据所述消息确定是否执行下游业务;
在接收到上游应用的上游业务未执行的消息时,删除所述待确认消息。
进一步的,所述的方法还包括:
在第一时间范围内接收到所述确认消息时,根据所述确认消息,将所述待确认消息的待确认状态修改为发送状态,并将修改为发送状态的消息传递至活动日志,以使下游应用监听所述活动日志中的消息,根据所述消息确定是否执行下游业务。
进一步的,所述的方法还包括:
接收下游应用的消息获取请求,所述消息获取请求为下游应用对所述活动日志进行监听,确定所述活动日志中包括待获取消息时发送的请求;
根据所述消息获取请求,将所述待获取消息发送至下游应用;
判断是否在第二时间范围内接收到下游应用的执行成功消息,所述执行成功消息为下游应用根据所述待获取消息执行下游业务成功后的消息;
在第二时间范围内未接收到所述执行成功消息时,将所述待获取消息重新投递至活动日志中,以供下游应用监听。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711421347.3/2.html,转载请声明来源钻瓜专利网。