【技术实现步骤摘要】
服务调用方法、装置、电子设备及存储介质
本公开涉及互联网
,尤其涉及一种服务调用方法、装置、电子设备及存储介质。
技术介绍
随着互联网业务的发展,所能够提供的服务越来越复杂,因此对服务进行了拆分,将一个服务拆分成多个子服务,并部署到不同的服务器上,在需要时再通过RPC(RemoteProcedureCal,远程调用)来调用多个子服务从而提供完全的服务。在互联网服务中,为了完成一个任务,有可能需要使用远程调用请求其他的子服务来完成一些中间步骤,即该任务的子任务,如果被调用的子服务出现故障,有可能导致子任务的处理结果不能及时返回,从而阻塞了整个任务的处理。在严重的情况下,可能因为一个较小的子服务的故障,导致整体的任务都不能继续执行,这种现象称为雪崩。目前业内提出了解决上述调用阻塞的问题的方案,比如超时机制。具体来说,超时机制是设置一个超时时间,当某个子服务的远程调用的耗时超过超时时间后,则确定为针对该子服务的远程调用失败,则可以继续远程调用下一个子服务,从而保证了后续子任务可以继续执行,同时避免计算资源一直被占用。然而,超时机制存在的问题是,为了避免少量的服务性能抖动就导致远程调用超时失败,所以超时时间通常设置得比较长,这意味着如果被调用的子服务或网络长时间故障时,有可能导致所有的子任务都会增加等待比较长的等待时间,而在某个子服务的调用长期故障时,仍然会导致雪崩的发生。可见,超时时间设置过长不能解决故障情况下的阻塞问题,因此如何合理调整调用子服务的超时时长,从而避免长时间阻塞,提高任务处理请 ...
【技术保护点】
1.一种服务调用方法,其特征在于,所述方法包括:/n获取任务处理请求;所述任务处理请求包括至少一个待处理的子任务;/n确定所述子任务对应的子目标服务;所述子目标服务用于处理所述子任务并返回处理结果;/n为所述任务处理请求分配第一调用线程,所述第一调用线程用于依次调用所述子目标服务;/n在所述第一调用线程调用所述子目标服务的过程中,当确定所述子目标服务处于异常状态时,为所述子目标服务分配第二调用线程,所述第二调用线程用于替代所述第一调用线程调用所述子目标服务;/n若所述第一调用线程未能在预设的线程间等待时间内,接收到所述第二调用线程返回的所述子目标服务处理所述子任务的处理结果时,则通过所述第一调用线程继续调用下一个所述子任务对应的子目标服务;其中,所述线程间等待时间小于所述第一调用线程对应的第一超时时间,所述第一超时时间为所述第一调用线程判断是否停止调用所述子目标服务的等待时间。/n
【技术特征摘要】
1.一种服务调用方法,其特征在于,所述方法包括:
获取任务处理请求;所述任务处理请求包括至少一个待处理的子任务;
确定所述子任务对应的子目标服务;所述子目标服务用于处理所述子任务并返回处理结果;
为所述任务处理请求分配第一调用线程,所述第一调用线程用于依次调用所述子目标服务;
在所述第一调用线程调用所述子目标服务的过程中,当确定所述子目标服务处于异常状态时,为所述子目标服务分配第二调用线程,所述第二调用线程用于替代所述第一调用线程调用所述子目标服务;
若所述第一调用线程未能在预设的线程间等待时间内,接收到所述第二调用线程返回的所述子目标服务处理所述子任务的处理结果时,则通过所述第一调用线程继续调用下一个所述子任务对应的子目标服务;其中,所述线程间等待时间小于所述第一调用线程对应的第一超时时间,所述第一超时时间为所述第一调用线程判断是否停止调用所述子目标服务的等待时间。
2.根据权利要求1所述的服务调用方法,其特征在于,在所述为所述子目标服务分配第二调用线程之前,所述方法还包括:
获取所述子目标服务的状态描述数据;所述状态描述数据用于表征所述子目标服务对所述子任务的响应状态;
根据所述状态描述数据,确定所述子目标服务处于异常状态或者正常状态。
3.根据权利要求2所述的服务调用方法,其特征在于,当所述状态描述数据为权重值时,所述权重值用于表征所述子目标服务被成功调用的次数在其被调用总次数中的比重;
所述根据所述状态描述数据,确定所述子目标服务处于异常状态或者正常状态,包括:
当所述权重值小于预设阈值时,确定所述子目标服务处于异常状态;
当所述权重值大于或等于预设阈值时,确定所述子目标服务处于正常状态。
4.根据权利要求3所述的服务调用方法,其特征在于,在所述为所述子目标服务分配第二调用线程之后,所述方法还包括:
当在第二超时时间内,通过所述第二调用线程获取到所述子目标服务处理所述子任务的处理结果,则增加所述权重值;其中,第二超时时间为所述第二调用线程判断是否停止调用所述子目标服务的等待时间;
当未在第二超时时间内,通过所述第二调用线程接收到所述子目标服务处理所述任务的处理结果,则减小所述权重值。
5.根据权利要求2所述的服务调用方法,其特征在于,当所述状态描述数据为所述子目标服务返回所述子任务的处理结果的耗时时间时,所述根据所述状态描述数据,确定所述子目标服务处于异常状态或者正常状态,包括:
获取所述子目标服务返回所述子任务的每个处理结果的耗时时间;
根据每个处理结果的耗时时间,获取所述子目标服务在预设时间区间内返回所述子任务的多个处理...
【专利技术属性】
技术研发人员:曹福祥,邢志浩,刘希诚,王玉龙,何锐,贺群斐,
申请(专利权)人:北京达佳互联信息技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。