[发明专利]支持微服务架构事务最终一致性的方法、装置及系统有效
申请号: | 201611123186.5 | 申请日: | 2016-12-08 |
公开(公告)号: | CN106777026B | 公开(公告)日: | 2019-12-20 |
发明(设计)人: | 姜军;刘昆鹏 | 申请(专利权)人: | 用友网络科技股份有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/2457;G06F16/25 |
代理公司: | 11343 北京友联知识产权代理事务所(普通合伙) | 代理人: | 尚志峰;汪海屏 |
地址: | 100094*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 支持 微服 架构 事务 最终 一致性 方法 装置 系统 | ||
1.一种支持微服务架构事务最终一致性的方法,用于发送端,所述发送端通过消息队列服务与接收端进行交互,其特征在于,包括:
步骤102,发起服务调用,记录日志,并实时存储日志数据至日志数据库;
步骤104,当所述日志写入动作时,定时检查日志数据库中未发起服务调用或者超过指定时间未收到返回结果的日志,发送调用请求,判断所述调用请求是否成功发送;在所述调用请求成功发送时,进行步骤106,以调用所述消息队列服务;
步骤106,接收回执消息,根据回执消息查询日志记录,根据日志状态判断调用处理是否完成,若调用处理完成,进行步骤108;以及若调用为处理中,进行步骤110;
步骤108,不作处理;
步骤110,调用返回结果,并将返回结果记录到日志中,实时存储日志数据至日志数据库,根据返回结果的状态调用相应业务的接口,返回步骤102。
2.根据权利要求1所述的支持微服务架构事务最终一致性的方法,其特征在于,还包括:
步骤112,在所述调用请求未成功发送时,返回步骤102。
3.根据权利要求1所述的支持微服务架构事务最终一致性的方法,其特征在于,所述步骤102,具体包括:
业务系统服务的业务代码调用远程服务接口时,拦截调用所述远程服务接口;
生成全局唯一的事务ID,并记录所述事务ID;
实时存储日志数据至日志数据库,并记录日志的调用状态为未调用。
4.根据权利要求3所述的支持微服务架构事务最终一致性的方法,其特征在于,
所述日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
5.一种支持微服务架构事务最终一致性的方法,用于消息队列服务,发送端通过所述消息队列服务与接收端进行交互,其特征在于,包括:
步骤202,接收所述发送端传递的消息,调用消息队列,将所述消息放入执行队列中的实时队列;
步骤204,管理消息队列,以及监听到所述执行队列收到所述消息后,发送所述消息;
步骤206,接收所述消息,根据所述消息查询日志记录,判断消息日志状态;若所述消息日志状态为处理中或日志不存在,进行步骤208;若所述消息日志状态为成功或者失败,进行步骤210;
步骤208,根据所述消息调用业务系统服务,判断所述业务系统服务是否调用成功及调用失败原因类型;若所述业务系统服务调用成功或者业务原因调用失败,进行步骤210;若所述业务系统服务非业务原因调用失败,进行步骤226;
步骤210,通知回执队列,并将返回结果放入回执队列的实时队列中;
步骤212,监听到所述回执队列收到包含所述返回结果的消息后,发送回执消息;
步骤214,接收所述回执消息,发送给所述发送端,并返回处理结果;
步骤216,根据所述处理结果,判断所述回执队列中的消息是否发送成功;若发送失败,进行步骤218;若发送成功,进行步骤224;
步骤218,计算下级延时队列,并判断回执队列是否存在下级延时队列;若回执队列存在下级延时队列,进行步骤220;若回执队列不存在下级延时队列,进行步骤222;
步骤220,将消息放入下级延时队列,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;
步骤222,记录消息日志状态为回执发送失败,并实时存储日志数据至日志数据库;
步骤224,记录消息日志状态为结果发送成功,并实时存储日志数据至日志数据库;
步骤226,根据当前队列计算下级延时队列,判断执行队列是否存在下级延时队列,若执行队列存在下级延时队列,进行步骤228;若执行队列不存在下级延时队列,返回步骤210;
步骤228,将消息放入下级执行队列中的延时队列,返回步骤206,同时进行步骤230;
步骤230,记录消息日志状态为处理中,并实时存储日志数据至日志数据库。
6.根据权利要求5所述的支持微服务架构事务最终一致性的方法,其特征在于,
所述日志数据包括以下至少之一或其组合:事务ID、调用参数、环境参数、调用时间、调用状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友网络科技股份有限公司,未经用友网络科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611123186.5/1.html,转载请声明来源钻瓜专利网。