基于线程数量限制的服务器业务请求并行处理方法及系统技术方案

技术编号:9571359 阅读:129 留言:0更新日期:2014-01-16 04:11
本发明专利技术提供了一种基于线程数量限制的服务器业务请求并行处理方法和系统,该业务请求并行处理方法和系统采用了根据处理时长不同而对业务请求加以分类处理的控制方案,对服务器调用于并行处理每一类别业务请求的线程数量的上限加以限制,以避免长处理时长业务请求对服务器线程的“垄断占用”的情况,确保服务器中总有部分线程被用于并行处理短处理时长的业务请求,使得服务器业务请求处理线程的分配平衡性得以增强,从而提升了服务器整体的业务请求处理执行效率和用户服务效率,同时也降低了服务器对大量运算复杂的长处理时长业务请求进行并行处理导致长时间对服务器系统资源形成“垄断占用”的可能性,从而改善了服务器的系统资源分配合理性能。

【技术实现步骤摘要】
基于线程数量限制的服务器业务请求并行处理方法及系统
本专利技术涉及计算机通信网络技术和服务器
,具体涉及一种基于线程数量限制的服务器业务请求并行处理方法及系统。
技术介绍
服务器,是指在计算机通信网络中的一个管理资源对外提供业务服务的高性能计算机。服务器类型有很多,例如数据服务器、文件服务器、网页服务器、流媒体服务器、搜索服务器等,它们侦听计算机通信网络中来自计算机客户端或移动通信客户端的业务请求,并对业务请求进行响应和处理,进而为计算机客户端或移动通信客户端提供各种不同的业务服务,丰富了网络应用。计算机通信网络中的服务器随时都面临着数量庞大的业务请求需要执行处理,服务器对业务请求的处理能力自然也成为其业务服务质量的一项重要衡量标准,快速、高效的业务服务更能够提升用户的业务体验以及对业务服务产品的忠诚度。为了提升服务器业务服务质量,目前服务器都普遍采用了多线程并行处理业务请求的多线程并发处理模式,使得多个业务请求能够在同一时段内得以处理,以增强服务器的业务请求处理能力。即便是对于同一服务业务而言,都存在多种不同的业务请求,不同业务请求的处理时长也不尽相同,不同业务请求的处理时长可能相差数倍;更何况,有很多服务器还同时运行有多项服务业务,因此服务器可能接收和处理的业务请求更加多样化,不同业务请求处理时长的差别也可能更大;本文所述业务请求的处理时长,是指服务器调用线程对业务请求进行处理直至处理完成得到请求处理结果所持续的时长。而目前的服务器通常采用的是一种比较简单的多线程并发处理模式,即对于服务器接收到的各种业务请求不加区分地进行统一排队,形成一个单一的请求队列,再根据请求队列中各业务请求的排队顺序,分别调用多个线程依次对请求队列中尚未处理的业务请求进行并行处理,每个线程在业务请求处理完成后得以释放并能够再次被调用,以执行后续的业务请求处理。但由于受到服务器系统处理性能和系统资源的限制,服务器能够用于执行业务请求并行处理的线程的总数是有限的,并且服务器接收到的业务请求具有很强的随机性,因此服务器采用这种简单的多线程并发处理模式很可能时常出现这样的情况:在某个时间段单一请求队列中排队靠前的都是处理时长较长的业务请求,使得服务器几乎所有能够用于执行业务请求并行处理的线程都被调用执行这些处理时长较长的业务请求。这种情况的发生将主要带来两方面的不利影响:①、如果能够先对短处理时长的业务请求进行处理后、再对长处理时长的业务请求进行处理,不仅使得短处理时长业务请求所对应的用户能够迅速获得请求处理结果,对于长处理时长业务请求所对应的用户而言,其获得请求处理结果的等待时间也并没有大幅超出预期,因此使得不同用户均能获得较好的业务服务体验感;然而,由于服务器所有能够用于执行业务请求并行处理的线程都被处理时长较长的业务请求所“垄断占用”,使得短处理时长的业务请求也必须排队等待有线程完成业务请求处理得以释放后才能够得到处理,这样虽然没有影响长处理时长业务请求所对应的用户对业务服务的体验感,但却大大增加了短处理时长业务请求所对应的用户获得请求处理结果的等待时间,并且其等待时长大幅超出预期,因此很可能严重影响这些用户的业务服务体验感;并且,如果长处理时长业务请求的处理时间是短处理时长业务请求的数倍,那么意味着,这种情况发生的过程中,虽然确保了一定数量的长处理时长业务请求所对应用户的业务服务体验感,但却是以大幅降低数倍数量的短处理时长业务请求所对应用户的业务服务体验感作为代价的,因此从整体而言,实际上降低了服务器的业务请求处理执行效率以及用户服务效率。②、业务请求的处理时长越长,通常意味着该业务请求对应的处理运算越复杂,需要占用的服务器系统资源也越多;如果服务器所有能够用于执行业务请求并行处理的线程都被调用执行处理时长较长的业务请求,那么意味着服务器的大量系统资源将在较长时间内被这些执行业务请求并行处理的线程所占用,甚至可能在这段较长的时间内对服务器系统资源形成“垄断占用”,使得服务器执行其它任务处理的运行效率骤然降低甚至终止运行,进而发生网络服务中断、服务器系统任务崩溃等严重后果。
技术实现思路
针对现有技术中存在的上述不足,本专利技术的目的在于提供一种基于线程数量限制的服务器业务请求并行处理方法,以提升服务器整体的业务请求处理执行效率和用户服务效率,改善服务器的系统资源分配合理性能,解决现有技术中服务器存在的业务请求处理执行效率和用户服务效率难以保证、时常可能出现网络服务中断或服务器系统任务崩溃的问题。为实现上述目的,本专利技术采用了如下技术手段:基于线程数量限制的服务器业务请求并行处理方法,其特征在于,预先根据服务器对业务请求处理时长的长短将业务请求分为数个类别,并分别设置各类别业务请求对应的并行处理线程上限数量,各类别业务请求对应的并行处理线程上限数量的总和等于服务器能够用于执行业务请求并行处理的线程的总数;服务器接收业务请求并进行类别识别,对不同类别业务请求分别排队,形成各类别业务请求相应的请求队列,且服务器分别对每一个类别的请求队列中尚未处理的业务请求调用不超过相应类别业务请求对应的并行处理线程上限数量的线程进行多线程并行处理。上述的服务器业务请求并行处理方法中,作为进一步优选方案,所述“预先根据服务器对业务请求处理时长的长短将业务请求分为数个类别,并分别设置各类别业务请求对应的并行处理线程上限数量”具体为:a1)预先统计服务器处理各不同业务请求的处理时长,获得其中的最短处理时长和最长处理时长;a2)将所述最短处理时长至所述最长处理时长之间的时长空间划分为依次相邻的数个时长区间,将预先统计的处理时长在同一时长区间的业务请求归为一类,从而根据预先统计的各不同业务请求的处理时长所在的时长区间,将业务请求对应的分为数个类别;a3)分别设置各类别业务请求对应的并行处理线程上限数量,各类别业务请求对应的并行处理线程上限数量的总和等于服务器能够用于执行业务请求并行处理的线程的总数。上述的服务器业务请求并行处理方法中,作为进一步优选方案,所述“服务器接收业务请求并进行类别识别,对不同类别业务请求分别排队,形成各类别业务请求相应的请求队列”具体为:b1)预先分别设置各类别业务请求的队列存储空间,用于分别存储各类别业务请求相应的请求队列;b2)在服务器接收到业务请求时,识别接收到的业务请求所属的类别,查找到相应类别业务请求的队列存储空间;b3)将接收到的业务请求作为其相应类别的请求队列中当前排队最靠后的一个存入相应类别业务请求的队列存储空间。上述的服务器业务请求并行处理方法中,作为进一步优选方案,所述“服务器分别对每一个类别的请求队列中尚未处理的业务请求调用不超过相应类别业务请求对应的并行处理线程上限数量的线程进行多线程并行处理”具体为:对每一个类别的业务请求,按如下步骤分别进行多线程并行处理的线程调用控制:c1)检测该类别业务请求相应的请求队列中当前是否存在尚未处理的业务请求;若存在,则执行步骤c2);若不存在,则执行步骤c4);c2)检测当前对该类别业务请求执行并行处理的线程数量,判断当前对该类别业务请求执行并行处理的线程数量是否已达到该类别业务请求对应的并行处理线程上限数量;若已达到,则执行步骤c4);若尚未达到,则执行步骤c3)本文档来自技高网
...
基于线程数量限制的服务器业务请求并行处理方法及系统

【技术保护点】
基于线程数量限制的服务器业务请求并行处理方法,其特征在于,预先根据服务器对业务请求处理时长的长短将业务请求分为数个类别,并分别设置各类别业务请求对应的并行处理线程上限数量,各类别业务请求对应的并行处理线程上限数量的总和等于服务器能够用于执行业务请求并行处理的线程的总数;服务器接收业务请求并进行类别识别,对不同类别业务请求分别排队,形成各类别业务请求相应的请求队列,且服务器分别对每一个类别的请求队列中尚未处理的业务请求调用不超过相应类别业务请求对应的并行处理线程上限数量的线程进行多线程并行处理。

【技术特征摘要】
1.基于线程数量限制的服务器业务请求并行处理方法,其特征在于,预先根据服务器对业务请求处理时长的长短将业务请求分为数个类别,并分别设置各类别业务请求对应的并行处理线程上限数量;服务器接收业务请求并进行类别识别,对不同类别业务请求分别排队,形成各类别业务请求相应的请求队列,且服务器分别对每一个类别的请求队列中尚未处理的业务请求调用不超过相应类别业务请求对应的并行处理线程上限数量的线程进行多线程并行处理;所述预先根据服务器对业务请求处理时长的长短将业务请求分为数个类别,并分别设置各类别业务请求对应的并行处理线程上限数量具体为:a1)预先统计服务器处理各不同业务请求的处理时长,获得其中的最短处理时长和最长处理时长;a2)将所述最短处理时长至所述最长处理时长之间的时长空间划分为依次相邻的数个时长区间,将预先统计的处理时长在同一时长区间的业务请求归为一类,从而根据预先统计的各不同业务请求的处理时长所在的时长区间,将业务请求对应的分为数个类别;a3)分别设置各类别业务请求对应的并行处理线程上限数量,各类别业务请求对应的并行处理线程上限数量的总和等于服务器能够用于执行业务请求并行处理的线程的总数。2.根据权利要求1所述的服务器业务请求并行处理方法,其特征在于,所述服务器接收业务请求并进行类别识别,对不同类别业务请求分别排队,形成各类别业务请求相应的请求队列具体为:b1)预先分别设置各类别业务请求的队列存储空间,用于分别存储各类别业务请求相应的请求队列;b2)在服务器接收到业务请求时,识别接收到的业务请求所属的类别,查找到相应类别业务请求的队列存储空间;b3)将接收到的业务请求作为其相应类别的请求队列中当前排队最靠后的一个存入相应类别业务请求的队列存储空间。3.根据权利要求1所述的服务器业务请求并行处理方法,其特征在于,所述服务器分别对每一个类别的请求队列中尚未处理的业务请求调用不超过相应类别业务请求对应的并行处理线程上限数量的线程进行多线程并行处理具体为:对每一个类别的业务请求,按如下步骤分别进行多线程并行处理的线程调用控制:c1)检测该类别业务请求相应的请求队列中当前是否存在尚未处理的业务请求;若存在,则执行步骤c2);若不存在,则执行步骤c4);c2)检测当前对该类别业务请求执行并行处理的线程数量,判断当前对该类别业务请求执行并行处理的线程数量是否已达到该类别业务请求对应的并行处理线程上限数量;若已达到,则执行步骤c4);若尚未达到,则执行步骤c3);c3)调用一个线程对该类别的请求队列中当前排队最靠前的一个尚未处理的业务请求进行处理,然后立即返回步骤c1);c4)延时Δt时长,然后返回步骤c1)。4.根据权利要求3所述的服务器业务请求并行处理方法,其特征在于,所述Δt时长的取值范围为50~500ms。5.根据权利要求1所述的服务器业务请求并行处理方法,其特征在于,所述各类别业务请求对应的并行处理线程上限数量中,平均处理时长越长的业务请求类别...

【专利技术属性】
技术研发人员:王忻
申请(专利权)人:重庆新媒农信科技有限公司
类型:发明
国别省市:

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

1