[发明专利]一种保证幂等的微服务调用监管系统及方法有效
申请号: | 201911380810.3 | 申请日: | 2019-12-27 |
公开(公告)号: | CN111241112B | 公开(公告)日: | 2023-05-23 |
发明(设计)人: | 钱进;于秋波;张世栋;尚猛;郭斌;赵永光;宋婷婷;刘萌;马志成 | 申请(专利权)人: | 山大地纬软件股份有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06Q40/04 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 李琳 |
地址: | 250102 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保证 微服 调用 监管 系统 方法 | ||
1.一种保证幂等的微服务调用监管系统,其特征在于,包括交易申请模块和交易调用模块;
所述交易申请模块包括调用端交易申请模块和提供端交易申请模块,调用端发起调用申请时,通过调用端交易申请模块向提供端交易申请模块发起申请,提供端交易申请模块将生成的交易编号返回至调用端,调用端根据交易编号组装调用参数;
所述交易调用模块包括调用端交易调用模块和提供端交易调用模块,调用端通过调用端交易调用模块根据调用参数发起微服务调用,提供端交易调用模块接到调用请求,进行交易信息校验;
如果交易是首次发生,所述提供端交易调用模块将交易信息保存,调用微服务实现类,并保存交易结果,将交易结果通过调用端交易调用模块返回至调用端;
如果交易非首次发生,所述提供端交易调用模块获取交易信息,判断交易是否已经完成,如果上次调用交易已经完成,则将交易结果通过调用端交易调用模块返回至调用端,如果交易未完成,调用微服务实现类并保存交易结果,将交易结果通过调用端交易调用模块返回至调用端;
所述交易编号用于标志一次的微服务交易,一次微服务交易可以发生多次的微服务调用,每一次调用的交易编号相同;
微服务调用的幂等性通过提供端交易调用模块内对交易信息的校验来保证。
2.如权利要求1所述的保证幂等的微服务调用监管系统,其特征在于,所述调用监管系统还包括交易后续结果存取模块,用于接收提供端的交易后续结果,调用端发送交易后续结果的调用请求到提供端,提供端判断后续结果是否设置,如果交易完成并且后续结果已经设置,交易后续结果存取模块将后续结果返回至调用端,调用端根据后续结果处理;如果交易未完成或者后续结果未设置,由调用端等待时机再次发起后续结果获取请求。
3.如权利要求1所述的保证幂等的微服务调用监管系统,其特征在于,所述调用监管系统还包括交易管理模块,用于管理所有的微服务交易,查看每一次交易的详情,并针对交易异常的情况给出解决方案。
4.一种保证幂等的微服务调用方法,其特征在于,包括以下步骤:
步骤601:调用端发起调用申请时,首先通过调用端的交易申请模块向提供端的交易申请模块发起申请,提供端的交易申请模块将生成的交易编号返回;
步骤602:调用端根据交易编号组装调用参数;
步骤603:调用端发起微服务调用;
步骤604:提供端接到调用请求,提供端微服务交易调用模块进行交易信息校验,校验交易是不是首次发生,如果是首次发生则转向605步骤进行处理,如果是非首次发生,表示之前交易调用发生异常,转向609步骤进行处理;
步骤605:交易首次发生,将交易信息保存,用于604步骤判断是否发生过交易;
步骤606:调用微服务实现类,获取交易结果;
步骤607:保存交易结果;
步骤608:返回交易结果;
步骤609:交易非首次发生时,获取交易信息;
步骤610:判断交易是否已经完成,本步骤发生在非首次调用时,用于判断上次调用是否已经产生了交易结果,如果上次调用交易已经完成那么转向608步骤,如果交易未完成,那么转向606步骤重新进行交易处理;
一次微服务交易可以发生多次的微服务调用,每一次调用的交易编号相同,微服务调用的幂等性通过提供端交易调用模块内对交易信息的校验来保证。
5.如权利要求4所述的保证幂等的微服务调用方法,其特征在于,提供端完成业务处理以后,由提供端进行微服务交易后续结果的设置,后续结果的获取由调用端发起,具体为:
步骤701:调用端发起请求获取后续结果;
步骤702:提供端判断后续结果是否设置,如果交易完成并且后续结果已经设置则转向703步骤,如果交易未完成或者后续结果未设置,那么返回701步骤由调用端等待时机再次发起后续结果获取请求;
步骤703:获取后续结果;
步骤704:调用端根据后续结果处理。
6.如权利要求4所述的保证幂等的微服务调用方法,其特征在于,集中可视化管理所有的微服务交易,实时查看每一次交易的详情,并针对交易异常的情况给出异常解决方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山大地纬软件股份有限公司,未经山大地纬软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911380810.3/1.html,转载请声明来源钻瓜专利网。