【技术实现步骤摘要】
一种保证幂等的微服务调用监管系统及方法
本公开涉及微服务调用
,特别涉及一种保证幂等的微服务调用监管系统及方法。
技术介绍
本部分的陈述仅仅是提供了与本公开相关的
技术介绍
,并不必然构成现有技术。在微服务架构下,原本单体式应用以及数据库被拆分为多个微服务应用和多个数据库,原本单体式应用内的代码逻辑调用变为了多个应用之间的微服务调用,业务数据由单一数据库保存变为分库分表。单体式应用内代码调用的调用端与提供端之间不存在网络和分库等因素,两端数据库操作的一致性得到保证,提供端不需要保证操作幂等。本公开专利技术人发现,在微服务架构下,调用两端处于不同数据库,调用端与提供端之间容易受网络等因素影响出现提供端处理结果反馈不到调用端的情况,这种情况下调用端只能重新发起调用再次获取到处理结果,才能保证两端数据库操作的一致性,这就需要提供方要保证幂等,而让微服务的开发者每一个微服务都保证幂等,无疑增加了微服务开发的难度和工作量。
技术实现思路
为了解决现有技术的不足,本公开提供了一种保证幂等的微服务调用监管系统及方法,保证了微服务的严格幂等,屏蔽了在不同系统以及不同数据库之间调用时造成的数据库操作一致性问题。为了实现上述目的,本公开采用如下技术方案:本公开第一方面提供了一种保证幂等的微服务调用监管系统。一种保证幂等的微服务调用监管系统,包括交易申请模块和交易调用模块;所述交易申请模块包括调用端交易申请模块和提供端交易申请模块,调用端发起调用申请时,通过调用端交易申 ...
【技术保护点】
1.一种保证幂等的微服务调用监管系统,其特征在于,包括交易申请模块和交易调用模块;/n所述交易申请模块包括调用端交易申请模块和提供端交易申请模块,调用端发起调用申请时,通过调用端交易申请模块向提供端交易申请模块发起申请,提供端交易申请模块将生成的交易编号返回至调用端,调用端根据交易编号组装调用参数;/n所述交易调用模块包括调用端交易调用模块和提供端交易调用模块,调用端通过调用端交易调用模块根据调用参数发起微服务调用,提供端交易调用模块接到调用请求,进行交易信息校验;/n如果交易是首次发生,所述提供端交易调用模块将交易信息保存,调用微服务实现类,并保存交易结果,将交易结果通过调用端交易调用模块返回至调用端;/n如果交易非首次发生,所述提供端交易调用模块获取交易信息,判断交易是否已经完成,如果上次调用交易已经完成,则将交易结果通过调用端交易调用模块返回至调用端,如果交易未完成,调用微服务实现类并保存交易结果,将交易结果通过调用端交易调用模块返回至调用端。/n
【技术特征摘要】
1.一种保证幂等的微服务调用监管系统,其特征在于,包括交易申请模块和交易调用模块;
所述交易申请模块包括调用端交易申请模块和提供端交易申请模块,调用端发起调用申请时,通过调用端交易申请模块向提供端交易申请模块发起申请,提供端交易申请模块将生成的交易编号返回至调用端,调用端根据交易编号组装调用参数;
所述交易调用模块包括调用端交易调用模块和提供端交易调用模块,调用端通过调用端交易调用模块根据调用参数发起微服务调用,提供端交易调用模块接到调用请求,进行交易信息校验;
如果交易是首次发生,所述提供端交易调用模块将交易信息保存,调用微服务实现类,并保存交易结果,将交易结果通过调用端交易调用模块返回至调用端;
如果交易非首次发生,所述提供端交易调用模块获取交易信息,判断交易是否已经完成,如果上次调用交易已经完成,则将交易结果通过调用端交易调用模块返回至调用端,如果交易未完成,调用微服务实现类并保存交易结果,将交易结果通过调用端交易调用模块返回至调用端。
2.如权利要求1所述的保证幂等的微服务调用监管系统,其特征在于,所述调用监管系统还包括交易后续结果存取模块,用于接收提供端的交易后续结果,调用端发送交易后续结果的调用请求到提供端,提供端判断后续结果是否设置,如果交易完成并且后续结果已经设置,交易后续结果存取模块将后续结果返回至调用端,调用端根据后续结果处理;如果交易未完成或者后续结果未设置,由调用端等待时机再次发起后续结果获取请求。
3.如权利要求1所述的保证幂等的微服务调用监管系统,其特征在于,所述调用监管系统还包括交易管理模块,用于管理所有的微服务交易,查看每一次交易的详情,并针对交易异常的情况给出解决方案。
4.如权利要求1所述的保证幂等的微服务调用监管系统,其特征在于,所述交易编号用于标志一次的微服务交易,一次微服务交易可以发生多次的微服务调用,每一次调用的交易编号相同。
5.如权利要求1所述的保证幂等的微服务调用监管系统,其特征在于,微服务调用的幂等性通过提供端交易调用模块内对交易信息的校验来保证。
6...
【专利技术属性】
技术研发人员:钱进,于秋波,张世栋,尚猛,郭斌,赵永光,宋婷婷,刘萌,马志成,
申请(专利权)人:山大地纬软件股份有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。