服务调用方法、装置、设备、系统、存储介质及产品制造方法及图纸

技术编号:34807266 阅读:20 留言:0更新日期:2022-09-03 20:15
本申请实施例公开了服务调用方法、装置、设备、存储介质及产品。其中,该方法包括:通过第一线程根据目标调用任务的目标调用请求数量,向预设队列中写入预设标识数据,预设队列的容量为预设数值,被写入预设队列中的预设标识数据的总数量与目标调用请求数量一致,通过预设数量的第二线程以竞争方式从预设队列中取出预设标识数据,通过成功取出预设标识数据的第二线程向目标调用任务对应的下游服务发送调用请求。通过采用上述技术方案,可以在存在批量的下游服务调用需求时,节省调用方资源,并兼顾下游服务的稳定性和可用性。并兼顾下游服务的稳定性和可用性。并兼顾下游服务的稳定性和可用性。

【技术实现步骤摘要】
服务调用方法、装置、设备、系统、存储介质及产品


[0001]本申请实施例涉及计算机
,尤其涉及服务调用方法、装置、设备、存储介质及产品。

技术介绍

[0002]在数据规模越来越庞大、以及程序响应速度要求越来越来高的条件下,微服务分布式架构应运而生,服务以模块化分别部署在不同的计算平台,通过通信协议来进行通信,如远程过程调用(Remote Procedure Call,RPC)协议等,系统与系统之间的通信一般需要通过互联网,如采用超文本传输协议(Hyper Text Transfer Protocol,HTTP)协议等。
[0003]在实际业务中,可能有很多场景存在短时间内处理大批用户任务的需求,为了满足该需求,往往需要短时间内对下游服务发起批量调用,需考虑到能及时发送业务需要的信息,且要防止请求集中在某段时间内导致下游服务负担过重,进而导致整个业务需求无法完成。

技术实现思路

[0004]本申请实施例提供了服务调用方法、装置、设备、存储介质及产品,可以更加合理地进行服务调用。
[0005]第一方面,本申请提供了一种服务调用方法,该方法包括:
[0006]通过第一线程根据目标调用任务的目标调用请求数量,向预设队列中写入预设标识数据,其中,所述预设队列的容量为预设数值,被写入所述预设队列中的预设标识数据的总数量与所述目标调用请求数量一致;
[0007]通过预设数量的第二线程以竞争方式从所述预设队列中取出所述预设标识数据;
[0008]通过成功取出所述预设标识数据的第二线程向所述目标调用任务对应的下游服务发送调用请求。
[0009]第二方面,本申请提供了一种服务调用方法,应用于服务调用系统,所述服务调用系统中包括主节点和至少一个从节点,所述方法包括:
[0010]通过所述主节点根据所述从节点的属性信息将总调用任务拆分为至少一个目标调用任务,并将所述至少一个目标调用任务分配至所述从节点;
[0011]通过所述从节点基于所接收到的目标调用任务执行如本申请第一方面所提供的服务调用方法。
[0012]第三方面,本申请提供了一种服务调用装置,该装置包括:
[0013]标识数据写入模块,用于通过第一线程根据目标调用任务的目标调用请求数量,向预设队列中写入预设标识数据,其中,所述预设队列的容量为预设数值,被写入所述预设队列中的预设标识数据的总数量与所述目标调用请求数量一致;
[0014]标识数据取出模块,用于通过预设数量的第二线程以竞争方式从所述预设队列中取出所述预设标识数据;
[0015]调用请求发送模块,用于通过成功取出所述预设标识数据的第二线程向所述目标调用任务对应的下游服务发送调用请求。
[0016]第四方面,本申请提供了一种服务调用设备,所述服务调用设备包括:
[0017]至少一个处理器;以及
[0018]与所述至少一个处理器通信连接的存储器;其中,
[0019]所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面提供的服务调用方法,或者,执行本申请第二方面提供的服务调用方法中由所述主节点或所述从节点执行的相应步骤。
[0020]第五方面,本申请提供了一种服务调用系统,包括主节点和至少一个从节点;
[0021]所述主节点,用于根据所述从节点的属性信息将总调用任务拆分为至少一个目标调用任务,并将所述至少一个目标调用任务分配至所述从节点;
[0022]所述从节点,用于基于所接收到的目标调用任务执行本申请第一方面提供的服务调用方法。
[0023]第六方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现本申请第一方面提供的服务调用方法,或者,实现本申请第二方面提供的服务调用方法中由所述主节点或所述从节点执行的相应步骤。
[0024]第七方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现本申请第一方面提供的服务调用方法,或者,实现本申请第二方面提供的服务调用方法中由所述主节点或所述从节点执行的相应步骤。
[0025]本申请实施例中提供的服务调用方案,通过第一线程根据目标调用任务的目标调用请求数量,向预设队列中写入预设标识数据,预设队列的容量为预设数值,被写入预设队列中的预设标识数据的总数量与目标调用请求数量一致,通过预设数量的第二线程以竞争方式从预设队列中取出预设标识数据,通过成功取出预设标识数据的第二线程向目标调用任务对应的下游服务发送调用请求。通过采用上述技术方案,由第一线程以向预设队列中写入标识数据的方式决定第二线程是否能够发送调用请求,有利于对调用请求的发送数量以及发送速率等进行整体控制,而一定数量的第二线程采用竞争方式从队列中取出标识数据,若取出成功,则可对下游服务发起调用,增加线程利用率,因此,可以在存在批量的下游服务调用需求时,节省调用方资源,并兼顾下游服务的稳定性和可用性。
[0026]应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0027]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028]图1为本申请实施例提供的一种服务调用方法的流程示意图;
[0029]图2为相关技术中的一种服务调用方案原理示意图;
[0030]图3为相关技术中的另一种服务调用方案原理示意图;
[0031]图4为本申请实施例提供的一种服务调用方案原理示意图;
[0032]图5为本申请实施例提供的又一种服务调用方法的流程示意图;
[0033]图6为本申请实施例提供的一种调用请求发送过程示意图;
[0034]图7为本申请实施例提供的一种调用请求发送速率变化示意图;
[0035]图8为本申请实施例提供的一种应用场景示意图;
[0036]图9为本申请实施例提供的另一种服务调用方法的流程示意图;
[0037]图10为本申请实施例提供的一种服务调用装置的结构框图;
[0038]图11为本申请实施例提供的一种服务调用设备的结构框图;
[0039]图12为本申请实施例提供的一种服务调用系统的结构框图。
具体实施方式
[0040]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务调用方法,其特征在于,包括:通过第一线程根据目标调用任务的目标调用请求数量,向预设队列中写入预设标识数据,其中,所述预设队列的容量为预设数值,被写入所述预设队列中的预设标识数据的总数量与所述目标调用请求数量一致;通过预设数量的第二线程以竞争方式从所述预设队列中取出所述预设标识数据;通过成功取出所述预设标识数据的第二线程向所述目标调用任务对应的下游服务发送调用请求。2.根据权利要求1所述的方法,其特征在于,还包括:在通过所述第一线程向所述预设队列中写入所述预设标识数据的过程中,若写入失败,则启动新的第二线程;通过所述新的第二线程从所述预设队列中取出所述预设标识数据,并向所述目标调用任务对应的下游服务发送调用请求。3.根据权利要求1所述的方法,其特征在于,还包括:在通过所述第一线程向所述预设队列中写入第一预设标识数据后,基于预设方式确定目标等待时长,并在经过所述目标等待时长后,向所述预设队列中写入第二预设标识数据。4.根据权利要求3所述的方法,其特征在于,在所述基于预设方式确定目标等待时长之前,还包括:确定预期发送请求数量;若已发送请求数量小于所述预期发送请求数量,则即时向所述预设队列中写入所述第二预设标识数据。5.根据权利要求3所述的方法,其特征在于,所述基于预设方式确定目标等待时长,包括:基于第一预设方式,根据预期速率、已消耗时长和已发送请求数量,确定目标等待时长,其中,所述预期速率根据所述目标调用任务的目标完成时长与所述目标调用请求数量的商确定,所述已消耗时长根据当前时刻与所述目标调用任务的开始执行时刻的差确定。6.根据权利要求5所述的方法,其特征在于,所述基于第一预设方式,根据预期速率、已消耗时长和已发送请求数量,确定目标等待时长,包括:根据已发送请求数量确定目标发送数量,其中,所述目标发送数量为所述已发送请求数量与1的和;根据所述目标发送数量与所述预期速率的商,确定目标时长;根据所述目标时长与所述已消耗时长的差,确定目标等待时长。7.根据权利要求3所述的方法,其特征在于,所述基于预设方式确定目标等待时长,包括:基于第二预设方式,根据初始速率、预设增长率、已消耗时长和已发送请求数量,确定目标等待时长,其中,所述初始速率和所述预设增长率根据所述目标调用任务设定,所述已消耗时长根据当前时刻与所述目标调用任务的开始执行时刻的差确定。8.根据权利要求7所述的方法,其特征在于,所述基于第二预设方式,根据初始速率、预设增长率、已消耗时长和已发送请求数量,确定目标等待时长,包括:根据已发送请求数量和预期发送请求数量确定目标数量差值,其中,所述目标数量差
值为所述已发送请求数量与1的和,减去所述预期发送请求数量;根据所述初始速率、所述预设增长率以及所述已消耗时长,确定目标速率;根据所述目标速率与所述目标数量差值的乘积,确定目标等待时长。9.一种服务调用方法,其特征在于,应用于...

【专利技术属性】
技术研发人员:郑鑫
申请(专利权)人:广州市百果园网络科技有限公司
类型:发明
国别省市:

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

1