服务调用方法及装置制造方法及图纸

技术编号:14776193 阅读:64 留言:0更新日期:2017-03-09 13:00
本发明专利技术涉及服务调用方法及装置。该方法包括:在接收到调用服务的请求的情况下,获取所述服务的可用性参数;在所述可用性参数为可用的情况下,调用所述服务,并获取所述服务的响应结果;在所述可用性参数为不可用的情况下,执行备选操作。通过在接收到调用服务的请求的情况下,获取该服务的可用性参数,在可用性参数为可用的情况下,则调用该服务,并获取该服务的响应结果,在可用性参数为不可用的情况下,执行备选操作,根据本发明专利技术的服务调用方法及装置能够在服务出现异常时,降低分布式应用系统对该服务的依赖性,从而能够提高分布式应用系统的稳定性和可靠性。

【技术实现步骤摘要】

本专利技术涉及计算机软件
,尤其涉及一种服务调用方法及装置
技术介绍
分布式应用(DistributedApplication)指的是应用程序分布在不同计算机上,通过网络来共同完成一项任务的工作方式。在分布式应用系统中,为了降低耦合性和维护成本,同时为了方便不同部门之间的协同工作,通常拆分为多个具有单一功能的服务。例如,对于大型的互联网分布式应用,通常拆分为负载均衡、前端、后台、缓存、数据库和第三方服务等多个服务。不同的服务通常会部署在不同机房的多台服务器上,服务之间通过共享数据库和RPC(RemoteProcessCall,远程过程调用)等方式进行通信。当分布式应用系统依赖的服务出现异常时,例如服务无法正常响应时,会影响分布式应用系统的性能和稳定性,甚至导致整个分布式应用系统出现异常,从而造成较大损失。综上,现有的分布式应用系统的稳定性和可靠性依赖于内部及外部服务的稳定性和可靠性,当分布式应用系统依赖的服务出现异常时,对分布式应用系统的服务质量影响较大,甚至会导致分布式应用系统不可用。
技术实现思路
技术问题有鉴于此,本专利技术要解决的技术问题是,现有的分布式应用系统的稳定性和可靠性较低。解决方案为了解决上述技术问题,根据本专利技术的一实施例,提供了一种服务调用方法,包括:在接收到调用服务的请求的情况下,获取所述服务的可用性参数;在所述可用性参数为可用的情况下,调用所述服务,并获取所述服务的响应结果;在所述可用性参数为不可用的情况下,执行备选操作。对于上述方法,在一种可能的实现方式中,在所述可用性参数为不可用的情况下,执行备选操作,包括:在所述可用性参数为不可用的情况下,判断所述请求是否需要对所述服务进行探测;若判定需要对所述服务进行探测,则调用所述服务,并获取所述服务的响应结果;若判定不需要对所述服务进行探测,则调用所述服务的备选数据和/或备选逻辑。对于上述方法,在一种可能的实现方式中,判断所述请求是否需要对所述服务进行探测,包括:根据预先设定的探测流量比例设置第一区间,并根据所述探测流量比例在所述第一区间中设定第四预设值;为所述请求在所述第一区间中生成随机数,若所述随机数与第四预设值相同,则判定需要对所述服务进行探测,否则判定不需要对所述服务进行探测。对于上述方法,在一种可能的实现方式中,在获取所述服务的响应结果之后,所述方法还包括:将所述服务对应的调用总次数加1;若所述服务的响应结果为异常,则将所述服务对应的调用失败次数加1;在当前系统时间与所述服务的检测时间戳之间的时间间隔大于或等于第一预设值,且所述调用总次数大于或等于第二预设值的情况下,根据所述调用失败次数更新所述可用性参数。对于上述方法,在一种可能的实现方式中,根据所述调用失败次数更新所述可用性参数,包括:在所述调用失败次数与所述调用总次数的比值大于或等于第三预设值的情况下,将所述可用性参数更新为不可用;在所述调用失败次数与所述调用总次数的比值小于所述第三预设值的情况下,将所述可用性参数更新为可用。对于上述方法,在一种可能的实现方式中,在根据所述调用失败次数更新所述可用性参数之后,所述方法还包括:将所述检测时间戳更新为所述当前系统时间,并将所述调用总次数和所述调用失败次数清零。对于上述方法,在一种可能的实现方式中,在获取所述服务的响应结果之后,所述方法还包括:若所述服务的响应结果为正常,则将所述服务的最新调用状态更新为正常状态,否则将所述最新调用状态更新为异常状态。为了解决上述技术问题,根据本专利技术的另一实施例,提供了一种服务调用装置,包括:可用性参数获取模块,用于在接收到调用服务的请求的情况下,获取所述服务的可用性参数;服务调用模块,用于在所述可用性参数为可用的情况下,调用所述服务,并获取所述服务的响应结果;备选操作执行模块,用于在所述可用性参数为不可用的情况下,执行备选操作。对于上述装置,在一种可能的实现方式中,所述备选操作执行模块包括:探测判断子模块,用于在所述可用性参数为不可用的情况下,判断所述请求是否需要对所述服务进行探测;服务调用子模块,用于若判定需要对所述服务进行探测,则调用所述服务,并获取所述服务的响应结果;备选调用子模块,用于若判定不需要对所述服务进行探测,则调用所述服务的备选数据和/或备选逻辑。对于上述装置,在一种可能的实现方式中,所述探测判断子模块具体用于:在所述可用性参数为不可用的情况下,根据预先设定的探测流量比例设置第一区间,并根据所述探测流量比例在所述第一区间中设定第四预设值;为所述请求在所述第一区间中生成随机数,若所述随机数与第四预设值相同,则判定需要对所述服务进行探测,否则判定不需要对所述服务进行探测。对于上述装置,在一种可能的实现方式中,所述装置还包括:调用总次数累加模块,用于将所述服务对应的调用总次数加1;调用失败次数累加模块,用于若所述服务的响应结果为异常,则将所述服务对应的调用失败次数加1;可用性参数更新模块,用于在当前系统时间与所述服务的检测时间戳之间的时间间隔大于或等于第一预设值,且所述调用总次数大于或等于第二预设值的情况下,根据所述调用失败次数更新所述可用性参数。对于上述装置,在一种可能的实现方式中,所述可用性参数更新模块包括:第一可用性参数更新子模块,用于在所述调用失败次数与所述调用总次数的比值大于或等于第三预设值的情况下,将所述可用性参数更新为不可用;第二可用性参数更新子模块,用于在所述调用失败次数与所述调用总次数的比值小于所述第三预设值的情况下,将所述可用性参数更新为可用。对于上述装置,在一种可能的实现方式中,所述装置还包括:清零模块,用于将所述检测时间戳更新为所述当前系统时间,并将所述调用总次数和所述调用失败次数清零。对于上述装置,在一种可能的实现方式中,所述装置还包括:最新调用状态更新模块,用于若所述服务的响应结果为正常,则将所述服务的最新调用状态更新为正常状态,否则将所述最新调用状态更新为异常状态。有益效果通过在接收到调用服务的请求的情况下,获取该服务的可用性参数,在可用性参数为可用的情况下,则调用该服务,并获取该服务的响应结果,在可用性参数为不可用的情况下,执行备选操作,根据本专利技术实施例的服务调用方法及装置能够在服务出现异常时,降低分布式应用系统对该服务的依赖性,从而能够提高分布式应用系统的稳定性和可靠性。根据下面参考附图对示例性实施例的详细说明,本专利技术的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本专利技术的示例性实施例、特征和方面,并且用于解释本专利技术的原理。图1示出根据本专利技术一实施例的服务调用方法的实现流程图;图2示出根据本专利技术一实施例的服务调用方法步骤S103的一示例性的具体实现流程图;图3示出根据本专利技术一实施例的服务调用方法步骤S201中判断该请求是否需要对该服务进行探测的一示例性的具体实现流程图;图4示出根据本专利技术一实施例的服务调用方法的一示例性的实现流程图;图5示出根据本专利技术一实施例的服务调用方法的另一示例性的实现流程图;图6示出根据本专利技术一实施例的服务调用方法的另一示例性的实现流程图;图7示出根据本专利技术一实施例的服务调用方法的另一示例性的实现流程图;图8示出根据本专利技术另一实施例的服务调用装置的结构框图;图9示本文档来自技高网...
服务调用方法及装置

【技术保护点】
一种服务调用方法,其特征在于,包括:在接收到调用服务的请求的情况下,获取所述服务的可用性参数;在所述可用性参数为可用的情况下,调用所述服务,并获取所述服务的响应结果;在所述可用性参数为不可用的情况下,执行备选操作。

【技术特征摘要】
1.一种服务调用方法,其特征在于,包括:在接收到调用服务的请求的情况下,获取所述服务的可用性参数;在所述可用性参数为可用的情况下,调用所述服务,并获取所述服务的响应结果;在所述可用性参数为不可用的情况下,执行备选操作。2.根据权利要求1所述的方法,其特征在于,在所述可用性参数为不可用的情况下,执行备选操作,包括:在所述可用性参数为不可用的情况下,判断所述请求是否需要对所述服务进行探测;若判定需要对所述服务进行探测,则调用所述服务,并获取所述服务的响应结果;若判定不需要对所述服务进行探测,则调用所述服务的备选数据和/或备选逻辑。3.根据权利要求2所述的方法,其特征在于,判断所述请求是否需要对所述服务进行探测,包括:根据预先设定的探测流量比例设置第一区间,并根据所述探测流量比例在所述第一区间中设定第四预设值;为所述请求在所述第一区间中生成随机数,若所述随机数与第四预设值相同,则判定需要对所述服务进行探测,否则判定不需要对所述服务进行探测。4.根据权利要求1至3任意一项所述的方法,其特征在于,在获取所述服务的响应结果之后,所述方法还包括:将所述服务对应的调用总次数加1;若所述服务的响应结果为异常,则将所述服务对应的调用失败次数加1;在当前系统时间与所述服务的检测时间戳之间的时间间隔大于或等于第一预设值,且所述调用总次数大于或等于第二预设值的情况下,根据所述调用失败次数更新所述可用性参数。5.根据权利要求4所述的方法,其特征在于,根据所述调用失败次数更新所述可用性参数,包括:在所述调用失败次数与所述调用总次数的比值大于或等于第三预设值的情况下,将所述可用性参数更新为不可用;在所述调用失败次数与所述调用总次数的比值小于所述第三预设值的情况下,将所述可用性参数更新为可用。6.根据权利要求4所述的方法,其特征在于,在根据所述调用失败次数更新所述可用性参数之后,所述方法还包括:将所述检测时间戳更新为所述当前系统时间,并将所述调用总次数和所述调用失败次数清零。7.根据权利要求1至3任意一项所述的方法,其特征在于,在获取所述服务的响应结果之后,所述方法还包括:若所述服务的响应结果为正常,则将所述服务的最新调用状态更新为正常状态,否则将所述最新调用状态更新为异常状态。8.一种服务调用装置,其特征在于,包括:可用性参数获取模块,用于在接收到调用服务的请求的情...

【专利技术属性】
技术研发人员:吴航盖炳帅单明辉尹玉宗姚键潘柏宇王冀
申请(专利权)人:合一智能科技深圳有限公司
类型:发明
国别省市:广东;44

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

1