[发明专利]一种基于微服务架构的系统保障数据最终一致性的方法在审
| 申请号: | 201711184771.0 | 申请日: | 2017-11-23 |
| 公开(公告)号: | CN107861823A | 公开(公告)日: | 2018-03-30 |
| 发明(设计)人: | 莫展鹏;季统凯 | 申请(专利权)人: | 国云科技股份有限公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F17/30 |
| 代理公司: | 北京科亿知识产权代理事务所(普通合伙)11350 | 代理人: | 汤东凤 |
| 地址: | 523808 广东省东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 微服 架构 系统 保障 数据 最终 一致性 方法 | ||
1.一种基于微服务架构的系统保障数据最终一致性的方法,其特征在于,所述的方法包括以下步骤:
步骤1:上游应用发送待确认消息到可靠消息系统,如果可靠消息系统收到消息,执行步骤2,否则执行步骤6;
步骤2:可靠消息系统保存待确认消息并返回,如果上游应用收到确认消息,执行步骤3,否则,执行步骤6;
步骤3:上游应用执行本地业务,如果执行成功,则继续执行步骤4,否则,进行本地事务回滚,执行步骤6;
步骤4:上游应用通知可靠消息系统确认业务已执行并发送消息,如果可靠消息系统收到消息,执行步骤5,否则可靠消息系统向上游应用查询确认消息的状态,如果确认已完成,执行步骤5,否则执行步骤6;
步骤5:可靠消息系统修改消息状态为发送状态并将消息投递到消息组件,如果消息组件收到消息,执行步骤7,否则,可靠消息系统向上游应用查询确认消息的状态,如果确认已完成,执行步骤7,否则执行步骤6;
步骤6:上游应用停止执行,不再发送到下游执行;
步骤7:下游应用监听消息组件并获取消息,如果下游应用能收到消息,那么执行步骤8,否则请求可靠消息服务请求消息组件进行消息重发;
步骤8:下游应用根据消息体信息处理本地业务,如果本地业务执行失败,执行事务回滚,否则执行步骤9;
步骤9:下游应用向消息组件自动发送确认消息被消费,如果消息组件能收到消息,那么执行步骤11,否则,执行步骤10;
步骤10:下游应用停止执行;
步骤11:下游应用通知可靠消息服务消息被成功消费,可靠消息服务将该消息状态更改为已完成。
2.根据权利要求1所述的方法,其特征在于,所述向上游应用查询确认消息的状态包含以下具体步骤:
步骤1:可靠消息系统查询超时的待确认状态的消息;
步骤2:向上游应用查询业务执行的情况;
步骤3:业务未执行,则删除该消息,保证业务和可靠消息服务的一致性;业务已执行,则修改消息状态为已发送,并发送消息到消息组件。
3.根据权利要求1所述的方法,其特征在于,所述进行消息重发包含以下步骤:
步骤1:可靠消息系统定时查询状态为已发送并超时的消息;
步骤2:可靠消息系统将消息重新投递到消息组件中;
步骤3:下游应用监听消息,重新执行业务;
步骤4:下游应用通知可靠消息系统该消息已经成功消费。
4.根据权利要求2所述的方法,其特征在于,所述进行消息重发包含以下步骤:
步骤1:可靠消息系统定时查询状态为已发送并超时的消息;
步骤2:可靠消息系统将消息重新投递到消息组件中;
步骤3:下游应用监听消息,重新执行业务;
步骤4:下游应用通知可靠消息系统该消息已经成功消费。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述执行本地业务是指只涉及到单个微服务组件的业务,该项业务只会针对本地数据库进行操作。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述事务回滚是针对本地的数据库操作进行回滚操作。
7.根据权利要求5所述的方法,其特征在于,所述事务回滚是针对本地的数据库操作进行回滚操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国云科技股份有限公司,未经国云科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711184771.0/1.html,转载请声明来源钻瓜专利网。





