远程接口代理调用方法、装置以及计算机设备、存储介质制造方法及图纸

技术编号:30141807 阅读:25 留言:0更新日期:2021-09-23 15:06
本申请公开一种远程接口代理调用方法、装置以及计算机设备、存储介质,该方法包括:响应远程接口调用事件;将该远程接口的参数信息及其执行状态存储至任务数据库,所述执行状态初始化为待执行状态;根据所述参数信息代理调用执行所述远程接口,若该远程接口成功执行,修改该远程接口的执行状态为已执行状态,返回输出该远程接口的执行结果;响应定时任务触发事件而获取所述任务数据库中处于待执行状态的远程接口的参数信息,为该些远程接口重新执行根据所述参数信息代理调用执行所述远程接口的步骤。本申请对远程接口调用事件进行队列化任务调度,对远程接口调用进行缓冲和均衡,能够提高分布式服务集群内跨服务器超远程接口调用的数据通信效率。调用的数据通信效率。调用的数据通信效率。

【技术实现步骤摘要】
远程接口代理调用方法、装置以及计算机设备、存储介质


[0001]本申请实施例涉及计算机网络通信领域,尤其涉及一种远程接口代理调用方法、装置以及计算机设备、存储介质。

技术介绍

[0002]在互联网行业,微服务架构大行其道,哪怕只是一个小的业务模块或者产品线,其底层都是由很多个系统组合而成,系统和系统之间通过远程调用来进行交互,由于系统很多,交互也多,所以它们之间的交互就如同一个网状,其交互关系的复杂度可想而知。如此同时,由于导致网络延迟、网络波动、丢包、服务器异常等问题频发,使得服务和服务之间的交互调用变得不可靠,容易失败。此时,重试是一种比较常见的解决手段,通过不断的重试,最终执行成功。但是,鉴于网状结构的事实,海量的重试对服务器来说,有时候会构成灾难。
[0003]为了解决这一问题,个别企业采用了极其复杂的安全控制机制来实现,更为普遍的现有技术是采用Spring Retry、Guava Retry等工具来辅助,他们的共同点都是只能在内存里面重试,一旦系统重启或者宕机就无法继续重试,这些工具的不足主要表现在如下几个方面:
[0004](1)这些工具都是进行同步的、实时的重试。这种重试方式很容易给对方服务器造成双倍甚至多倍的压力。本来只需要调用一次的,但由于出现网络延迟或丢包,调用方由于不知道对方是否已经成功执行了任务,而又不得不重试,就造成了给对方瞬时更多的负载,容易导致对方服务崩溃。
[0005](2)同步的重试一般会设置一个重试次数,比如说是3。而很多时候,发生网络问题后,短时间是没法恢复的,需要很长时间。而此时一次性重试3次根本无济于事,由于重试了3次都失败了,最终只能当失败处理。
[0006](3)他们都是在内存里面重试的,重试的次数以及是否要重试都是在内存里面计算的,一旦系统重启或者宕机,之前的重试信息就丢失,导致无法继续重试。而基于敏捷开发模式的系统,三天两头需要上线重启系统,甚至一天一上线都是很常见的,在这种情况下,基于内存的重试就无法满足系统的要求。

技术实现思路

[0007]本申请的目的在于克服现有技术中至少部分不足而提供一种远程接口代理调用方法及其相应的装置、计算机设备及存储介质。
[0008]为解决上述技术问题,本申请实现的一个技术方案是:
[0009]本申请的一种远程接口代理调用方法,其包括如下步骤:
[0010]响应远程接口调用事件,提取出所述远程接口携带的参数信息;
[0011]将该远程接口的参数信息及其执行状态存储至任务数据库,所述执行状态初始化为待执行状态;
[0012]根据所述参数信息代理调用执行所述远程接口,若该远程接口成功执行,修改该
远程接口的执行状态为已执行状态,返回输出该远程接口的执行结果,若该远程接口执行失败,维持所述执行状态为原状态;
[0013]响应定时任务触发事件而获取所述任务数据库中处于待执行状态的远程接口的参数信息,为处于待执行状态的远程接口重新执行根据所述参数信息代理调用执行所述远程接口的步骤。
[0014]较佳的实施例中,本申请的远程接口代理调方法包括如下前置步骤:
[0015]启动代理调用服务;
[0016]获取被标注为属于待代理调用类型的远程接口的列表数据;
[0017]为所述属于待代理调用类型的远程接口注册代理调用服务,以便由所述代理调用服务响应属于待代理调用类型的远程接口的调用事件。
[0018]进一步完善的实施例中,将该远程接口的参数信息及其执行状态存储至任务数据库,包括如下步骤:
[0019]解析该远程接口的参数信息,判断其中各个参数是否合法,若不合法则拒绝执行代理调用服务;
[0020]将具有合法参数的远程接口的参数信息序列化为二进制数据,与该远程接口的执行状态关联性存储至任务数据库中,所述执行状态初始化为待执行状态。
[0021]适应前一实施例改进的另一实施例中,根据所述参数信息代理调用执行所述远程接口,包括如下步骤:
[0022]从所述任务数据库中获取所述的远程接口的二进制数据;
[0023]将该二进制数据反序列化为该远程接口的参数信息;
[0024]获取所述远程接口的代理方法的实例,向其传输所述的参数信息,驱动该代理方法代理调用执行所述远程接口。
[0025]进一步深化的实施例中,响应定时任务触发事件而获取所述任务数据库中处于待执行状态的远程接口的参数信息,为处于待执行状态的远程接口重新执行所述根据所述参数信息代理调用执行所述远程接口的步骤,包括如下步骤:
[0026]响应定时任务触发事件查询获取所述任务数据库中执行状态被标记为待执行状态的远程接口的二进制数据;
[0027]将各远程接口的二进制数据反序列化为该远程接口的参数信息;
[0028]为该些远程接口重新执行根据所述参数信息代理调用执行所述远程接口的步骤。
[0029]为丰富功能而扩展的实施例中,本申请的远程接口代理调用方法还包括如下步骤:
[0030]监听并判断同一远程接口执行失败的总次数,当该总次数超过预设阈值时,修改该远程接口的执行状态为重试失败状态,所述总次数在该远程接口执行失败后累计而得。
[0031]较佳的,所述定时任务触发事件相对应的定时任务被配置为计算机操作系统任务计划中的定时任务,或者被配置为Cron表达式。
[0032]为解决上述技术问题,本申请实现的一个技术方案是:
[0033]本申请的一种远程接口代理调用装置,其包括:
[0034]调用响应模块,用于响应远程接口调用事件,提取出所述远程接口携带的参数信息;
[0035]任务存储模块,用于将该远程接口的参数信息及其执行状态存储至任务数据库,所述执行状态初始化为待执行状态;
[0036]代理调用模块,用于根据所述参数信息代理调用执行所述远程接口,若该远程接口成功执行,修改该远程接口的执行状态为已执行状态,返回输出该远程接口的执行结果,若该远程接口执行失败,维持所述执行状态为原状态;
[0037]定时重试模块,用于响应定时任务触发事件而获取所述任务数据库中处于待执行状态的远程接口的参数信息,为处于待执行状态的远程接口重新调用所述的代理调用模块。
[0038]较佳的实施例中,本申请的远程接口代理调装置还包括:服务启动模块,用于启动代理调用服务;接口查询模块,用于获取被标注为属于待代理调用类型的远程接口的列表数据;接口注册模块,用于为所述属于待代理调用类型的远程接口注册代理调用服务,以便由所述代理调用服务响应属于待代理调用类型的远程接口的调用事件。
[0039]进一步完善的实施例中,所述任务存储模块包括:解析验证子模块,用于解析该远程接口的参数信息,判断其中各个参数是否合法,若不合法则拒绝执行代理调用服务;序列化子模块,用于将具有合法参数的远程接口的参数信息序列化为二进制数据,与该远程接口的执行状态关联性存储至任务数据库中,所述执行状态初始化本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种远程接口代理调用方法,其特征在于,包括如下步骤:响应远程接口调用事件,提取出所述远程接口携带的参数信息;将该远程接口的参数信息及其执行状态存储至任务数据库,所述执行状态初始化为待执行状态;根据所述参数信息代理调用执行所述远程接口,若该远程接口成功执行,修改该远程接口的执行状态为已执行状态,返回输出该远程接口的执行结果,若该远程接口执行失败,维持所述执行状态为原状态;响应定时任务触发事件而获取所述任务数据库中处于待执行状态的远程接口的参数信息,为处于待执行状态的远程接口重新执行根据所述参数信息代理调用执行所述远程接口的步骤。2.根据权利要求1所述的远程接口代理调用方法,其特征在于,其包括如下前置步骤:启动代理调用服务;获取被标注为属于待代理调用类型的远程接口的列表数据;为所述属于待代理调用类型的远程接口注册代理调用服务,以便由所述代理调用服务响应属于待代理调用类型的远程接口的调用事件。3.根据权利要求1所述的远程接口代理调用方法,其特征在于,将该远程接口的参数信息及其执行状态存储至任务数据库,包括如下步骤:解析该远程接口的参数信息,判断其中各个参数是否合法,若不合法则拒绝执行代理调用服务;将具有合法参数的远程接口的参数信息序列化为二进制数据,与该远程接口的执行状态关联性存储至任务数据库中,所述执行状态初始化为待执行状态。4.根据权利要求3所述的远程接口代理调用方法,其特征在于,根据所述参数信息代理调用执行所述远程接口,包括如下步骤:从所述任务数据库中获取所述的远程接口的二进制数据;将该二进制数据反序列化为该远程接口的参数信息;获取所述远程接口的代理方法的实例,向其传输所述的参数信息,驱动该代理方法代理调用执行所述远程接口。5.根据权利要求3所述的远程接口代理调用方法,其特征在于,响应定时任务触发事件而获取所述任务数据库中处于待执行状态的远程接口的参数信息,为处于待执行状态的远程接口重新执行所述根据所述参数信息代理调用执行所述远程接口的...

【专利技术属性】
技术研发人员:刘阳
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1