一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种请求信息的分配方法、系统、电子设备及存储介质与流程

2022-03-04 22:53:11 来源:中国专利 TAG:


1.本技术涉及服务器管理技术领域,特别涉及一种请求信息的分配方法、系统、电子设备及存储介质。


背景技术:

2.随着信息化爆炸式发展,云计算大数据已成为it领域关注的焦点。云计算平台发展至今已成为现行业普遍应用的标准,大量的应用上云对云计算平台的要求越来越高,在大规模高并发的应用场景下云计算平台需要合理的分配接收到的请求信息。
3.因此,如何实现请求信息的均衡分配,避免出现服务端业务压力过高的情况是本领域技术人员目前需要解决的技术问题。


技术实现要素:

4.本技术的目的是提供一种请求信息的分配方法、系统、一种电子设备及一种存储介质,能够实现请求信息的均衡分配,避免出现服务端业务压力过高的情况。
5.为解决上述技术问题,本技术提供一种请求信息的分配方法,应用于云计算平台,所述请求信息的分配方法包括:
6.若接收到目标请求信息,则查询空闲服务端集合;其中,所述空闲服务端集合中的服务端在当前时刻均处于空闲状态;
7.将最近一次被分配请求信息的服务端设置为参考服务端,并按照预设顺序将所述参考服务端的下一空闲服务端设置为目标服务端;
8.将所述目标请求信息分配至所述目标服务端。
9.可选的,在将所述目标请求信息分配至所述目标服务端之后,还包括:
10.更新所述服务端的请求分配数量;
11.若接收到服务端状态查询指令,则将请求分配数量最大的服务端设置为压力最大的服务端。
12.可选的,在将请求分配数量最大的服务端设置为压力最大的服务端之后,还包括:
13.对所述压力最大的服务端执行应用迁移操作,以便降低负载压力。
14.可选的,在将所述目标请求信息分配至所述目标服务端之后,还包括:
15.将目标服务端的设置为处于工作状态的非空闲服务端。
16.可选的,还包括:
17.判断非空闲服务端最近一次接收的请求信息是否处理完毕;
18.若是,则将所述非空闲服务端设置为处于空闲状态的空闲服务端。
19.可选的,所述按照预设顺序将所述参考服务端的下一空闲服务端设置为目标服务端,包括:
20.确定根据所述服务端的id构建的环形表;其中,所述环形表中的id顺序为所述预设顺序;
21.按照所述环形表对应的id顺序将所述参考服务端的下一空闲服务端设置为目标服务端。
22.可选的,在将最近一次被分配请求信息的服务端设置为参考服务端之前,还包括:
23.判断所述空闲服务端集合是否为空;
24.若是,则舍弃所述目标请求信息。
25.本技术还提供了一种请求信息的分配系统,应用于云计算平台,所述请求信息的分配系统包括:
26.查询模块,用于若接收到目标请求信息,则查询空闲服务端集合;其中,所述空闲服务端集合中的服务端在当前时刻均处于空闲状态;
27.服务端选择模块,用于将最近一次被分配请求信息的服务端设置为参考服务端,并按照预设顺序将所述参考服务端的下一空闲服务端设置为目标服务端;
28.分配模块,用于将所述目标请求信息分配至所述目标服务端。
29.本技术还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述请求信息的分配方法执行的步骤。
30.本技术还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述请求信息的分配方法执行的步骤。
31.本技术提供了一种请求信息的分配方法,应用于云计算平台,所述请求信息的分配方法包括:若接收到目标请求信息,则查询空闲服务端集合;其中,所述空闲服务端集合中的服务端在当前时刻均处于空闲状态;将最近一次被分配请求信息的服务端设置为参考服务端,并按照预设顺序将所述参考服务端的下一空闲服务端设置为目标服务端;将所述目标请求信息分配至所述目标服务端。
32.本技术在接收到目标请求信息之后,从空闲服务端集合中选择需要处理目标请求信息的空闲服务端。为了保证服务端处理请求的均衡性,本技术将最近一次被分配请求信息的服务端设置为参考服务端,并按照预设顺序选择参考服务端的下一空闲服务端设置为目标服务端,以便将目标请求信息分配至目标服务端进行处理。通过上述方式能够使各个空闲服务端均有机会被分配请求信息,实现请求信息的均衡分配,避免出现服务端业务压力过高的情况。本技术同时还提供了一种请求信息的分配系统、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
33.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1为本技术实施例所提供的一种请求信息的分配方法的流程图;
35.图2为本技术实施例所提供的一种请求分配示意图;
36.图3为本技术实施例所提供的一种请求信息的分配系统的结构示意图。
具体实施方式
37.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
38.下面请参见图1,图1为本技术实施例所提供的一种请求信息的分配方法的流程图。
39.具体步骤可以包括:
40.s101:若接收到目标请求信息,则查询空闲服务端集合;
41.其中,本实施例可以应用于包括多个服务端的云计算平台,客户端可以将目标请求信息发送至云计算平台,云计算平台可以将目标请求信息转发至相应的服务端,以便服务端对目标请求信息进行响应。
42.在接收到目标请求信息之后,本实施例可以从云计算平台对应的所有服务端中确定空闲服务端集合,空闲服务端集合中的服务端在当前时刻均处于空闲状态,即:当前未处理请求信息的服务端。
43.作为一种可行的实施方式,在查询空闲服务端集合之后,在将最近一次被分配请求信息的服务端设置为参考服务端之前,还可以判断所述空闲服务端集合是否为空;若是,则说明不存在空闲的服务端,可以舍弃所述目标请求信息;若否,则可以进入s102的相关步骤。
44.s102:将最近一次被分配请求信息的服务端设置为参考服务端,并按照预设顺序将所述参考服务端的下一空闲服务端设置为目标服务端;
45.其中,在本步骤之前可以判断目标请求信息是否为云计算平台第一次接收到的请求信息;若是,则可以随机选取一个空闲服务端作为目标服务端,也可以将编号最小的空闲服务端作为目标服务端;若否,则将最近一次被分配请求信息的服务端设置为参考服务端,该参考服务端可以为空闲服务端或非空闲服务端,进而按照预设顺序将所述参考服务端的下一空闲服务端设置为目标服务端。上述预设顺序可以为服务端编号从小到大的顺序,也可以为服务端编号从大到小的顺序,此处对查询目标服务端的顺序不进行具体的限定。
46.作为一种可行的实施方式,本实施例可以确定根据所述服务端的id构建的环形表;其中,所述环形表中的id顺序为所述预设顺序;按照所述环形表对应的id顺序将所述参考服务端的下一空闲服务端设置为目标服务端。
47.s103:将所述目标请求信息分配至所述目标服务端。
48.其中,在确定目标服务端后,可以将目标请求信息分配至目标服务端,以便目标服务端对目标请求信息进行处理。在将所述目标请求信息分配至所述目标服务端之后,还可以将目标服务端的设置为处于工作状态的非空闲服务端。
49.本实施例在接收到目标请求信息之后,从空闲服务端集合中选择需要处理目标请求信息的空闲服务端。为了保证服务端处理请求的均衡性,本实施例将最近一次被分配请求信息的服务端设置为参考服务端,并按照预设顺序选择参考服务端的下一空闲服务端设置为目标服务端,以便将目标请求信息分配至目标服务端进行处理。通过上述方式能够使各个空闲服务端均有机会被分配请求信息,实现请求信息的均衡分配,避免出现服务端业
务压力过高的情况。
50.作为对于图1对应实施例的进一步介绍,在将所述目标请求信息分配至所述目标服务端之后,可以更新所述服务端的请求分配数量;若接收到服务端状态查询指令,则将请求分配数量最大的服务端设置为压力最大的服务端。进一步的,在将请求分配数量最大的服务端设置为压力最大的服务端之后,还可以对所述压力最大的服务端执行应用迁移操作,以便降低负载压力。
51.作为对于图1对应实施例的进一步介绍,本实施例还可以按照周期判断非空闲服务端最近一次接收的请求信息是否处理完毕;若是,则将所述非空闲服务端设置为处于空闲状态的空闲服务端。
52.在大规模高并发的应用场景下,如何判断优化流量压力成为云计算平台不得不面临的问题,在高并发对流量请求进行统计并合理分配成为云计算平台对请求器压力进行软负载成为云平台必备的功能。本实施例提供一种云计算平台对底层服务端请求压力进行分析的方案,本实施例按照请求压力进行压力负载统计,对请求流量进行分流,提高资源使用效率。
53.本实施例中的服务端可以通过k8s部署方式进行多节点多副本部署,每个副本可作为请求的服务端。当有k台服务端,编号为0到k-1,它们可以同时处理多个请求组。假设每个服务端有无穷的计算能力但是不能同时处理超过一个请求,设计请求分配到服务端的规则为第i(序号从0开始)个请求到达。如果所有服务端都已被占据,那么该请求被舍弃(完全不处理)。如果第(i%k)个服务端空闲,那么对应服务端会处理该请求。否则,将请求安排给下一个空闲的服务端(服务端构成一个环,必要的话可能从第0个服务端开始继续找下一个空闲的服务端)。
54.下面通过实际应用中的实施例说明上述实施例描述的流程。
55.若存在编号为0到k-1的k个服务端,k个服务端可以同时处理多个请求组。每个服务端有无穷的计算能力但是不能同时处理超过一个请求,本实施例提供的请求分配到服务端的规则如下:
56.第i(序号从0开始)个请求到达。如果所有服务端都已被占据,那么该请求被舍弃(即,完全不处理)。如果第i%k个服务端空闲,那么对应服务端会处理该请求。否则,将请求安排给下一个空闲的服务端。本实施例可以将所有服务端构成一个环,可以从第0个服务端开始继续找下一个空闲的服务端。例如,第i个服务端在忙,那么会查看第(i 1)个服务端,第(i 2)个服务端等等。
57.本实施例将需求场景抽象为系统设计模型,自定义一个严格递增的正整数数组arrival,表示第i个任务的到达时间,和另一个数组load,其中load[i]表示第i个请求的工作量(即,服务端完成请求所需要的时间)。本实施例的任务是找到最繁忙的服务端。最繁忙的服务端为处理的请求数最多的服务端。
[0058]
下面提供几种请求分配的示例:
[0059]
模型示例1:
[0060]
输入:k=3,arrival=[1,2,3,4,5],load=[5,2,3,3,3];
[0061]
输出:[1];
[0062]
请参见图2,图2为本技术实施例所提供的一种请求分配示意图,所有服务端一开
始都处于空闲状态。前3个请求(r0、r1、r2)分别由前3台服务端依次处理。请求r3进来的时候,服务端0被占据,所以请求r3被安排到下一台空闲的服务端,也就是服务端1。请求r4进来的时候,由于所有服务端都被占据,该请求r4被舍弃。服务端0和服务端2分别都处理了一个请求,服务端1处理了两个请求,所以输出服务端1是最忙的服务端。
[0063]
模型示例2:
[0064]
输入:k=3,arrival=[1,2,3,4],load=[1,2,1,2];
[0065]
输出:[0];
[0066]
前3个请求分别被前3个服务端处理。请求r3进来时,由于服务端0空闲,请求r3被服务端0处理。服务端0处理了两个请求,服务端1和服务端2分别处理了一个请求,所以服务端0是最忙的服务端。
[0067]
模型示例3:
[0068]
输入:k=3,arrival=[1,2,3],load=[10,12,11];
[0069]
输出:[0,1,2];
[0070]
每个服务端分别处理了一个请求,所以服务端0、服务端1和服务端2都是最忙的服务端。
[0071]
模型示例4:
[0072]
输入:k=3,arrival=[1,2,3,4,8,9,10],load=[5,2,10,3,1,2,2];
[0073]
输出:[1];
[0074]
模型示例5:
[0075]
输入:k=1,arrival=[1],load=[1];
[0076]
输出:[0];
[0077]
本实施例将请求分摊到多个服务端上进行执行,从而共同完成工作任务。本实施例可以统计分析服务端负载,优化请求路径,将传入的请求传播到多台服务端上,不会因为单服务端负载高宕机而某台服务端闲置的情况。可作为软负载分析建立在现有网络结构之上,提供了一种有效透明的方法提高服务端利用率、增加吞吐量、加强网络数据处理能力、提高灵活性和可用性。能够帮助关键的业务程序上提供不中断的服务,根据请求访问量的增加来相应地增加服务端的数量分担请求压力,保证服务端也能做出快速响应。
[0078]
本实施例的实现思路如下:先确定最近一次被分配请求的服务端m。(总服务端数为k)。收到请求后,按照从id从小到大的顺序确定服务端m之后的第一个空闲服务端n,将当前收到的请求分配给服务端。收到请求后,如果所有服务端均未处于空闲状态,则舍弃请求。服务端处理完请求后,将状态更新为空闲。统计各个服务端处理的请求数量,将处理请求数量最多的服务端设置为压力最大的服务端。本实施例根据数据量确定时间复杂度nlog(n),需要用log(n)时间复杂度和服务端id确定空闲服务端的中的“下一个”空闲服务端。本实施例从2个维度考虑间线的维度,取出所有的空闲服务端。然后在空闲服务端中根据id取出下一个大于等于最近一次被分配请求信息的服务端的id。
[0079]
使用java treemap treeset伪代码如下:
[0080]
[0081][0082]
本实施例提供了一种云平台服务端压力计算分析方案,本方案可以统计分析服务端负载,优化请求路径,将传入的请求传播到多台服务端上,不会因为单服务端负载高宕机而某台服务端闲置的情况。可作为软负载分析建立在现有网络结构之上,提供了一种廉价有效透明的方法提高服务端利用率、增加吞吐量、加强网络数据处理能力、提高灵活性和可用性。本实施例能够帮助关键的业务程序上提供不中断的服务,根据请求访问量的增加来相应地增加服务端的数量分担请求压力,保证服务端也能做出快速响应。
[0083]
请参见图3,图3为本技术实施例所提供的一种请求信息的分配系统的结构示意图,应用于包括多个服务端的云计算平台,所述请求信息的分配系统包括:
[0084]
查询模块301,用于若接收到目标请求信息,则查询空闲服务端集合;其中,所述空
闲服务端集合中的服务端在当前时刻均处于空闲状态;
[0085]
服务端选择模块302,用于将最近一次被分配请求信息的服务端设置为参考服务端,并按照预设顺序将所述参考服务端的下一空闲服务端设置为目标服务端;
[0086]
分配模块303,用于将所述目标请求信息分配至所述目标服务端。
[0087]
本实施例在接收到目标请求信息之后,从空闲服务端集合中选择需要处理目标请求信息的空闲服务端。为了保证服务端处理请求的均衡性,本实施例将最近一次被分配请求信息的服务端设置为参考服务端,并按照预设顺序选择参考服务端的下一空闲服务端设置为目标服务端,以便将目标请求信息分配至目标服务端进行处理。通过上述方式能够使各个空闲服务端均有机会被分配请求信息,实现请求信息的均衡分配,避免出现服务端业务压力过高的情况。
[0088]
进一步的,还包括:
[0089]
压力检测模块,用于在将所述目标请求信息分配至所述目标服务端之后,更新所述服务端的请求分配数量;还用于若接收到服务端状态查询指令,则将请求分配数量最大的服务端设置为压力最大的服务端。
[0090]
进一步的,还包括:
[0091]
负载均衡模块,用于在将请求分配数量最大的服务端设置为压力最大的服务端之后,对所述压力最大的服务端执行应用迁移操作,以便降低负载压力。
[0092]
进一步的,还包括:
[0093]
状态设置模块,用于在将所述目标请求信息分配至所述目标服务端之后,将目标服务端的设置为处于工作状态的非空闲服务端。
[0094]
进一步的,还包括:
[0095]
状态切换模块,用于判断非空闲服务端最近一次接收的请求信息是否处理完毕;若是,则将所述非空闲服务端设置为处于空闲状态的空闲服务端。
[0096]
进一步的,服务端选择模块302,用于确定根据所述服务端的id构建的环形表;其中,所述环形表中的id顺序为所述预设顺序;还用于按照所述环形表对应的id顺序将所述参考服务端的下一空闲服务端设置为目标服务端。
[0097]
进一步的,还包括:
[0098]
请求舍弃模块,用于在将最近一次被分配请求信息的服务端设置为参考服务端之前,判断所述空闲服务端集合是否为空;若是,则舍弃所述目标请求信息。
[0099]
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0100]
本技术还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0101]
本技术还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
[0102]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实
施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
[0103]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献