The invention discloses a request allocation method and device, which belongs to the field of Internet technology. The method comprises: obtaining a K request queue of pending requests are expected to total processing time; according to the K requests to be processed are expected to total processing time, and used to perform K requests to be processed thread number n, calculate the corresponding time slice each thread a thread in N; according to the slice each time a thread in the thread n, respectively for each thread allocation n thread to handle the request, the n threads in the I thread allocation requests to be processed for the number of P, P requests to be processed is expected to total processing time of the time slice not more than I of the corresponding thread. By calculating the slice time corresponding to each thread, and taking it as the basis for assigning the processed requests to each thread, the total time spent on all the processed requests in the request queue is reduced, and the overall processing efficiency is improved.
【技术实现步骤摘要】
请求分配方法及装置
本专利技术实施例涉及互联网
,特别涉及一种请求分配方法及装置。
技术介绍
接口是服务提供设备用于向服务请求设备提供资源和信息的通道,而接口请求正是服务请求设备向服务提供设备发送的用于获取其内部资源和信息的请求。当大量接口请求高并发时,如何更高效地处理这些接口请求,往往取决于分配这些接口请求的方法。在相关技术中,大多采用开启多个线程并行处理接口请求的方法,使得同一时间内可以处理多个接口请求,以缩短处理大量接口请求所需的耗时。相关技术在为多个线程分配接口请求时,通常为每个线程分配相同数量的接口请求。但是,不同的接口请求用于获取不同的资源和信息,且不同的接口请求的处理耗时也各不相同,通过上述分配方法,容易导致某些线程因被分配到耗时较长的待处理请求而相较于其它线程延后较长时间处理完,从而降低了请求队列的整体处理效率。
技术实现思路
本专利技术实施例提供了一种请求分配方法及装置,可用于解决相关技术中因缺乏合理的分配方法而使得处理接口请求的耗时较长、效率较低的问题。所述技术方案如下:根据本专利技术实施例的第一方面,提供一种请求分配方法,所述方法包括:获取 ...
【技术保护点】
一种请求分配方法,其特征在于,所述方法包括:获取请求队列中k个待处理请求的预计处理耗时的总和,所述k为大于1的整数;根据所述k个待处理请求的预计处理耗时的总和,以及用于执行所述k个待处理请求的线程数量n,计算所述n个线程中的每一个线程对应的切片时间,所述n为大于1的整数;根据所述n个线程中的每一个线程对应的切片时间,分别为所述n个线程中的每一个线程分配待处理请求,其中,为所述n个线程中的第i个线程分配的待处理请求的数量为p,所述p个待处理请求的预计处理耗时的总和不大于所述第i个线程对应的切片时间,所述p为小于k的正整数,所述i为小于或等于n的正整数。
【技术特征摘要】
1.一种请求分配方法,其特征在于,所述方法包括:获取请求队列中k个待处理请求的预计处理耗时的总和,所述k为大于1的整数;根据所述k个待处理请求的预计处理耗时的总和,以及用于执行所述k个待处理请求的线程数量n,计算所述n个线程中的每一个线程对应的切片时间,所述n为大于1的整数;根据所述n个线程中的每一个线程对应的切片时间,分别为所述n个线程中的每一个线程分配待处理请求,其中,为所述n个线程中的第i个线程分配的待处理请求的数量为p,所述p个待处理请求的预计处理耗时的总和不大于所述第i个线程对应的切片时间,所述p为小于k的正整数,所述i为小于或等于n的正整数。2.根据权利要求1所述的方法,其特征在于,所述根据所述k个待处理请求的预计处理耗时的总和,以及用于执行所述k个待处理请求的线程数量n,计算所述n个线程中的每一个线程对应的切片时间,包括:获取所述k个待处理请求的超时率的平均值,所述待处理请求的超时率是指所述待处理请求发生超时情况的概率;若所述平均值等于0,则将所述k个待处理请求的预计处理耗时的总和与所述线程数量n相除,得到所述切片时间;若所述平均值大于0,则计算所述线程数量n和第一系数a的乘积,并将所述k个待处理请求的预计处理耗时的总和与所述乘积相除,得到所述切片时间,所述a大于1。3.根据权利要求2所述的方法,其特征在于,所述获取所述k个待处理请求的超时率的平均值,包括:获取每一种类型的请求的历史统计数据,其中,目标类型的请求的历史统计数据包括:所述目标类型的请求在历史统计周期内的统计数量,以及所述目标类型的请求中的每一个请求的实际处理耗时;根据每一种类型的请求的历史统计数据和每一种类型的请求的超时阈值,分别确定每一种类型的请求的超时率,其中,所述目标类型的请求的超时率等于所述目标类型的请求的超时数量与所述统计数量的商,所述目标类型的请求的超时数量是指所述目标类型的请求中,所述实际处理耗时大于所述目标类型的请求的超时阈值的请求数量;根据所述k个待处理请求各自的类型,以及每一种类型的请求的超时率,计算所述k个待处理请求的超时率的平均值。4.根据权利要求3所述的方法,其特征在于,所述目标类型的请求的历史统计数据还包括:所述目标类型的请求中的每一个请求对应的设备负荷状态,所述设备负荷状态包括正常负荷状态和高负荷状态;所述目标类型的请求的超时率包括:所述目标类型的请求在所述正常负荷状态下的超时率,和所述目标类型的请求在所述高负荷状态下的超时率。5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述n个线程中的每一个线程对应的切片时间,分别为所述n个线程中的每一个线程分配待处理请求,包括:将所述k个待处理请求划分为w个分组,其中,每一个分组中包括多个待处理请求,所述w个分组中的第j个分组中所有待处理请求的预计处理耗时的最小值,大于或者等于第j+1个分组中所有待处理请求的预计处理耗时的最大值,所述w为大于1的整数,所述j为小于w的正整数;从所述w个分组中的第1个分组开始,依次从每一个分组中取出一个待处理请求分配给第一线程,当从第u个分组中取出的一个待处理请...
【专利技术属性】
技术研发人员:许俊豪,曲仲元,金梦,
申请(专利权)人:上海添锡信息技术有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。