CN111970339B - 请求控制方法、装置及电子设备 - Google Patents
请求控制方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111970339B CN111970339B CN202010751892.4A CN202010751892A CN111970339B CN 111970339 B CN111970339 B CN 111970339B CN 202010751892 A CN202010751892 A CN 202010751892A CN 111970339 B CN111970339 B CN 111970339B
- Authority
- CN
- China
- Prior art keywords
- request
- time
- control instruction
- rate per
- query rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开实施例公开了一种请求控制方法,应用于集群中的工作节点,所述工作节点用于处理请求,该方法包括:获取所述工作节点处理请求的每秒查询率;向管理服务器上报所述工作节点的每秒查询率,以供所述管理服务器根据所述工作节点的每秒查询率确定是否触发控制指令;接收所述管理服务器下发的所述控制指令,根据所述控制指令对当前的待处理请求进行处理,其中,所述控制指令为所述管理服务器根据所述工作节点的每秒查询率确定触发的指令。本公开实施例能充分发挥集群性能、不会造成资源浪费。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种请求控制方法、装置及电子设备。
背景技术
随着业务的发展,为了快速响应用户请求,通常是通过构建集群,并基于集群中的工作节点处理各个请求,以提高各个请求的处理速度,然而,由于任意时间到来的请求往往是随机不可控的,而工作节点处理请求的能力是有限的,因此,需要根据工作节点的处理能力对请求进行控制,以保证正常服务的运行。
相关技术中,其是为工作节点配置经验阈值,当超过经验阈值时则限流,例如直接拒绝新的请求。然而,这种方式依赖经验阈值,对于集群中的请求控制,经验阈值需要人工维护,容易出错,而且,这种基于经验阈值实现请求控制的方式,会出现负载不均衡的情况,从而不能充分发挥集群性能、造成资源浪费。
发明内容
本公开的一个目的是提供一种请求控制方法,应用于集群中的工作节点,所述工作节点用于处理请求,包括:
获取所述工作节点处理请求的每秒查询率;
向管理服务器上报所述工作节点的每秒查询率,以供所述管理服务器根据所述工作节点的每秒查询率确定是否触发控制指令;
接收所述管理服务器下发的所述控制指令,根据所述控制指令对当前的待处理请求进行处理,其中,所述控制指令为所述管理服务器根据所述工作节点的每秒查询率确定触发的指令。
可选地,所述管理服务器为RAFT集群。
可选地,所述接收所述管理服务器下发的所述控制指令,根据所述控制指令对当前的待处理的请求进行处理,包括:
在接收到所述控制指令后,开始执行余量时间的累加操作以更新累积时间;其中,所述余量时间是任一请求的接收时间和与其相邻的前一个请求的接收时间的时间间隔与预设时间间隔的差值,所述累积时间的初始值为零;
根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理。
可选地,所述根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理,包括:
如果根据当前的待处理请求对应的更新后的累积时间大于等于零,则处理当前的待处理请求;或者,
如果根据当前的待处理请求对应的更新后的累积时间小于零,则等待第一时间后再处理当前的待处理请求,其中,所述第一时间为累积时间的绝对值。
可选地,在所述根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理之前,所述方法还包括:
判断所述当前的待处理请求对应的更新后的累积时间是否大于预设的最大累积时间;
在所述更新后的累积时间大于所述预设的最大累积时间时,对所述更新后的累积时间进行清零操作。
根据本公开的第二方面,提供了一种请求控制方法,应用于管理服务器,所述方法包括:
接收集群中的工作节点上报的所述工作节点的每秒查询率;
根据所述工作节点的每秒查询率确定是否要触发控制指令;
在确定触发控制指令的情况下,向所述工作节点下发所述控制指令。
可选地,所述管理服务器为RAFT集群。
可选地,所述根据所述工作节点的每秒查询率确定是否要触发控制指令,包括:
根据所述工作节点的每秒查询率确定所述集群的总每秒查询率;
根据所述集群的总每秒查询率确定是否要触发控制指令。
可选地,所述根据所述集群的总每秒查询率确定是否要触发控制指令,包括:
在所述集群的总每秒查询率大于预设的查询率阈值的情况下,触发控制指令。
可选地,所述根据所述工作节点的每秒查询率确定是否要触发控制指令,包括:
在所述工作节点的每秒查询率大于预设的查询率阈值的情况下,触发控制指令。
根据本公开的第三方面,提供了一种请求控制装置,包括:
获取模块,用于获取所述工作节点处理请求的每秒查询率;
上报模块,用于向管理服务器上报所述工作节点的每秒查询率,以供所述管理服务器根据所述工作节点的每秒查询率确定是否触发控制指令;
接收模块,用于接收所述管理服务器下发的所述控制指令,根据所述控制指令对当前的待处理请求进行处理。
根据本公开的第四方面,提供了一种电子设备,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述指令的控制运行所述电子设备执行如以上第一方面或第二方面所述的方法。
根据本公开的第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有可被计算机读取执行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行根据以上第一方面或第二方面所述的方法。
根据本公开实施例,集群中的工作节点在获知自身处理请求的每秒查询率(Queriespersecond,简称QPS)之后,便可将该每秒查询率上报至管理服务器,以由管理服务器记录该每秒查询率,这种将工作节点的每秒查询率统一记录在管理服务器的方式不仅可以提高数据存储的可靠性,还可以使得该数据能够成为共享资源供使用;同时,其是由管理服务器根据该每秒查询率确定是否触发控制指令,并在确定触发控制指令的情况下发送控制指令至工作节点,以使得工作节点根据该控制指令对待处理请求进行处理,这种由管理服务器对工作节点的处理能力进行判断,以由工作节点对待处理请求进行控制的方式,不易造成资源浪费,从而能充分利用资源,并且,由于无需对单个工作节点的请求进行配置,从而不易出错。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。
图1是可用于实现本公开实施例的请求控制系统的硬件配置的框图。
图2是根据本公开实施例的请求控制方法的示意性流程图;
图3是根据本公开实施例的请求到达服务器的示意图;
图4是根据本公开另一实施例的请求控制方法的示意性流程图;
图5是根据本公开实施例的请求控制装置的原理框图;
图6是根据本公开实施例的电子设备的原理框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是根据本公开实施例提供的一种请求控制系统的硬件配置的框图。
如图1所示,本实施例的请求控制系统100中包括集群1000、管理服务器2000和网络3000。
该集群1000可以是Group集群,该Group集群中包括至少一个工作节点,该工作节点可以是服务器,例如图1中Group集群包括3个工作节点,分别是服务器1000A、服务器1000B和服务器1000C,当然,该Group集群中还可以包含其他数量个服务器1000,本实施例在此不做限定。
该管理服务器2000可以是RAFT集群,RAFT集群至少包括2个节点,一般情况下,RAFT集群会包含奇数个节点,例如3个节点,这样RAFT集群正常工作时,最多可以故障1台机器;又例如5个节点,这样RAFT集群正常工作时,最多可以故障2台机器。但是如果只有2个节点,则RAFT集群内任意一台机器故障时,那么RAFT集群将无法正常工作。
该RAFT集群中可以仅包括一个领导节点,以及一个或多个追随节点,其中,该领导节点用于管理追随节点,该领导节点和追随节点均可以是服务器,例如图1中RAFT集群包括3个节点,其中,领导节点是服务器2000A,另外两个追随节点分别是2000和2000c,当然,该RAFT集群中还可以包含其他数量个服务器2000,本实施例在此不做限定。
如图1所示,服务器1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500和输入装置1600。处理器1100例如可以是中央处理器CPU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、串行接口等。通信装置1400例如能够进行有线或无线通信。显示装置1500例如是液晶显示屏。输入装置1600例如可以包括触摸屏、键盘等。
本领域技术人员应当理解,尽管在图1中示出了服务器1000的多个装置,但是,本公开实施例的服务器1000可以仅涉及其中的部分装置,例如,只涉及处理器1100和存储器1200。这是本领域公知,此处不再赘述。
应用于本实施例中,存储器1200用于存储计算机程序指令,该指令用于控制处理器1100进行操作以执行根据本公开任意实施例的请求控制方法。技术人员可以根据本发明所公开方案设计该指令。该指令如何控制处理器1100进行操作,这是本领域公知,故在此不再详细描述。
如图1所示,服务器2000也可以包括处理器2100、存储器2200、接口装置2300、通信装置2400、显示装置2500和输入装置2600。处理器2100例如可以是中央处理器CPU等。存储器2200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置2300例如包括USB接口、串行接口等。通信装置2400例如能够进行有线或无线通信。显示装置2500例如是液晶显示屏。输入装置2600例如可以包括触摸屏、键盘等。
本领域技术人员应当理解,尽管在图1中示出了服务器2000的多个装置,但是,本公开实施例的服务器2000可以仅涉及其中的部分装置,例如,只涉及处理器2100和存储器2200。这是本领域公知,此处不再赘述。
本实施例中,该Group集群是直接基于用户的,该Group集群中的工作节点用于接收用户的请求,并对用户的请求进行处理,而该RAFT集群对用户的请求并不知晓。同时,由于Group集群中的各工作节点互不感知对方的存在,仅知道自身的工作状态,而不知道集群中的其他工作节点的工作状态,而RAFT集群中的各节点之中是相互通信的,例如可以是由Group集群中的工作节点上报自身工作节点的每秒查询率至RAFT集群中的领导节点,由该领导节点根据工作节点的每秒查询率确定是否触发控制指令,该控制指令可以是限流指令,工作节点接收到领导节点下发的控制指令后,会根据控制指令对当前的待处理请求进行控制,以更好的实现限流。同时,该领导节点可以将信息同步至RAFT集群中的各追随节点,由各追随节点共同维护工作节点的每秒查询率,提高数据存储的可靠性。
网络3000可以是无线通信网络也可以是有线通信网络,可以是局域网也可以是广域网。
图1所示的请求控制系统仅是解释性的,决不是为了要限制本发明、其应用或用途,在实际应用当中,还可以包含其他数量的请求控制系统,例如,还可以包括2个请求控制系统,3个请求控制系统,5个请求控制系统,甚至更多,在此不做任何限定。
<方法实施例1>
请参看图2,其是根据一个实施例的请求控制方法的流程示意图。本实施例提供的请求控制方法可以应用于集群中的工作节点,例如,可以应用于图1所示的服务器1000中。如图2所示,该方法可以包括如下步骤S2100~S2300:
步骤S2100,获取工作节点处理请求的每秒查询率。
每秒查询率是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,也即是一个服务器每秒能够响应的请求次数。该服务器例如为集群中的工作节点,具体的,该工作节点可以是图1所示的服务器1000A、服务器1000B以及服务器1000C。可以理解的是,集群中各工作节点可以具有相同的每秒查询率,也可以具有不同的每秒查询率,本实施例在此不做限定。
本实施例中,集群中的工作节点是面向用户的,用户可以通过用户终端发送请求至任意一个工作节点,在该请求到达工作节点后被该工作节点立即处理,或者是在该请求到达工作节点后,以一定的预设时间间隔处理该请求,即,在该请求和其相邻的前一请求的接收时间的时间间隔大于等于预设时间间隔时,才处理该请求。
以上预设时间间隔是根据具体应用场景和具体应用需求设置的数值,该预设时间间隔可以为10ms。
以上接收时间可以为请求到达工作节点的时间。
以工作节点为服务器1000A为例,例如该请求为请求2,与该请求2相邻的前一请求为请求1,预设时间间隔为10ms,请求1到达服务器1000A的时间为(t)ms,请求2到达服务器1000A的时间为(t+15)ms,即,请求1和请求2到达服务器1000A的时间间隔为15ms,该时间间隔15ms大于预设时间间隔10ms,则该请求2在到达服务器1000A后便可被服务器1000A直接处理。
继续上述示例,该请求为请求3,与该请求3相邻的前一请求为请求2,预设时间间隔为10ms,请求2到达服务器1000A的时间为(t+15)ms,请求3到达服务器1000A的时间为(t+30)ms,即,请求2和请求3到达服务器1000A的时间间隔为15ms,该时间间隔15ms大于预设时间间隔10ms,则该请求3在到达服务器1000A后便可被服务器1000A直接处理。
步骤S2200,向管理服务器上报工作节点的每秒查询率,以供管理服务器根据工作节点的每秒查询率确定是否触发控制指令。
本实施例中,集群中的工作节点会定时向管理服务器上报自身工作节点的每秒查询率,在此,可以是集群中的所有工作节点均设置相同的时间周期,以根据该时间周期向管理服务器上报工作节点的每秒查询率。当然,也可以是为集群中的各工作节点设置各自对应的时间周期,以根据对应的时间周期向管理服务器上报自身工作节点的每秒查询率,不同工作节点设置的时间周期可以相同,也可以不同,本实施例在此不做限定。
管理服务器可以是RAFT集群,该RAFT集群包括图1所示的服务器2000A、服务器2000B和服务器2000C,其中,服务器2000A为领导节点,服务器2000B和服务器2000C为追随节点,该服务器2000A用于接收集群中各工作节点上报的每秒查询率,并将该每次查询率同步至服务器2000B和服务器2000C。该服务器2000A还用于根据集群中工作节点的每秒查询率确定是否触发控制指令,并在确定触发控制指令的情况下,发送控制指令至集群中各工作节点。
本实施例中,采用RAFT集群去对集群中各工作节点上报的每秒查询率进行统计,是为了避免用单节点统计每秒查询率时,该节点故障而导致整个限流工作无法正常进行,而且采用RAFT集群,在集群中少数节点故障的情况下,可以自动选举出新的领导节点继续进行工作,例如在请求量较大时,可能整个Group集群被流量压垮,此时,RAFT集群中的其余节点仍然能够正常工作,统计Group集群中各工作节点的每秒查询率,并根据工作节点的每秒查询率确定是否触发控制指令。
在一个例子中,本步骤S2200中管理服务器根据工作节点的每秒查询率确定是否触发控制指令可以进一步包括如下步骤S2210~S2220:
步骤S2210,根据工作节点的每秒查询率确定集群的总每秒查询率。
集群的总每秒查询率为该集群中的各工作节点的每秒查询率的和值。
结合图1,以管理服务器为服务器2000A为例,服务器2000A接收到集群中服务器1000A上报的每秒查询率QPS1、服务器1000B上报的每秒查询率QPS2以及服务器1000C上报的每秒查询率QPS3之后,便可计算服务器1000A、服务器1000B和服务器1000C的每秒查询率的和值作为总每秒查询率QPSsum,即,QPSsum=QPS1+QPS2+QPS3。
步骤S2220,根据集群的总每秒查询率确定是否触发控制指令。
本步骤S2220中管理服务器根据工作节点的每秒查询率确定是否触发控制指令可以进一步包括:在集群的总每秒查询率大于预设的查询率阈值的情况下,触发控制指令。
查询率阈值为集群处理请求的每秒查询率的上限值,即,当集群的总每秒查询率大于该集群的每秒查询率的上限值的情况下,管理服务器会向集群中各工作节点发送控制指令,该控制指令可以是限流指令,以使得工作节点根据该限流指令进行限流,即对该工作节点当前的待处理请求进行控制。
管理服务器中可以预先存储表示各个集群和对应的集群的查询率阈值映射关系的映射数据,该映射数据可以是映射表,该映射表中存储有集群与查询率阈值之间的索引关系。当然,工作节点在服务启动时,会主动向管理服务器注册自身节点信息,这样就可以避免在工作节点扩缩容例如增加工作节点或减少工作节点时修改映射表的问题。
继续以图1为例,服务器2000A在计算出集群的总每秒查询率QPSsum后,会进一步从预先存储的映射数据中查找出该集群的查询率阈值QPSlim,并将该集群的查询率阈值QPSlim和计算出的集群的总每秒查询率QPSsum进行比较,并在计算出的集群的总每秒查询率QPSsum大于该集群的查询率阈值QPSlim的请求下,服务器2000A分别向服务器1000A、服务器1000B以及服务器1000C发送控制指令,以由服务器1000A、服务器1000B以及服务器1000C分别对当前的待处理请求进行处理,由于该控制指令为限流指令,在此可以由服务器1000A、服务器1000B以及服务器1000C进行流量控制,即对服务器1000A、服务器1000B以及服务器1000C当前的待处理请求进行控制。
在该例子中,管理服务器是以整个集群的每秒查询率的上限值作为参照值,当工作节点的每秒查询率大于该上限值的情况下,触发控制指令,当然,也可以是如下所示,管理服务器以单个工作节点的每秒查询率的上限值作为参照值,当单个工作节点的每秒查询率大于该上限值的情况下,触发控制指令,即管理服务器向该工作节点下发控制指令,该工作节点根据控制指令对当前的待处理请求进行控制。
在一个例子中,本步骤S2200中管理服务器根据工作节点的每秒查询率确定是否触发控制指令可以进一步包括:在工作节点的每秒查询率大于预设的查询率阈值的情况下,触发控制指令。
该预设的查询率阈值是对应的工作节点处理请求的每秒查询率的上限值,即,当该工作节点的每秒查询率大于该工作节点的每秒查询率的上限值的情况下,管理服务器会向该工作节点中发送控制指令,该控制指令可以是限流指令,以使得工作节点根据该限流指令进行限流,即对该工作节点当前的待处理请求进行控制。
管理服务器中可以预先存储表示集群中各工作节点和对应的查询率阈值映射关系的映射数据,该映射数据可以是映射表,该映射表中存储有工作节点与查询率阈值之间的索引关系。当然,工作节点在服务启动时,会主动向管理服务器注册自身节点信息,这样就可以避免在工作节点扩缩容例如增加工作节点或减少工作节点时修改映射表的问题。
继续以图1为例,服务器2000A在接收到服务器1000A上报的每秒查询率后,会进一步从预先存储的映射数据中查找出该工作节点的查询率阈值,并将该服务器1000A的查询率阈值和该服务器1000A的每秒查询率进行比较,并在服务器1000A的查询率阈值大于该服务器1000A的查询率阈值的情况下,服务器2000A向服务器1000A发送控制指令,以由服务器1000A对当前的待处理请求进行处理,由于该控制指令为限流指令,在此可以由服务器1000A进行流量控制,即对服务器1000A当前的待处理请求进行控制。
步骤S2300,接收管理服务器下发的控制指令,根据控制指令对当前的待处理请求进行处理。
控制指令为管理服务器根据工作节点的每秒查询率确定触发的指令,该控制指令可以是限流指令,以使得工作节点根据该限流指令对该工作节点当前的待处理请求进行控制,实现工作节点的流量控制。
本实施例中,本步骤S2300根据控制指令对当前的待处理请求进行处理可以进一步包括如下步骤S2310~S2320:
步骤S2310,在接收到控制指令后,开始执行余量时间的累加操作以更新累积时间。
以上余量时间可以是任一请求的接收时间和与其相邻的前一个请求的接收时间的时间间隔与预设时间间隔的差值,该差值可以是正值,也可以是负值。
以上累积时间的初始值为零。
步骤S2320,根据当前的待处理请求对应的更新后的累积时间,对当前的待处理请求进行处理。
在一个例子中,本步骤S2320中根据当前的待处理请求对应的更新后的累积时间,对当前的待处理请求进行处理可以进一步包括:如果根据当前的待处理请求对应的更新后的累积时间大于等于零,则处理当前的待处理请求。
以下结合图3对步骤S2310和本步骤S2320的例子进行详细介绍:
例如,请求1到达服务器1000A的时间为(t)ms,请求2到达服务器1000A的时间为(t+15)ms,即,请求1与请求2的接收时间的时间间隔为15ms,该时间间隔15ms与预设时间间隔10ms的差值为5ms,此时,累积时间Tcur=5ms;请求3到达服务器1000A的时间为(t+30)ms,请求2与请求3的接收时间的时间间隔为15ms,该时间间隔15ms与预设时间间隔阈值10ms的差值为5ms,此时,累积时间Tcur=(5+5)ms=10ms,此时,服务器1000A接收到管理服务器下发的限流指令,请求4作为当前的待处理请求,请求4到达服务器1000A的时间为(t+34)ms,请求3与请求4的接收时间的时间间隔为4ms,该时间间隔4ms与预设时间间隔10ms的差值为-6,按照现有的解决方案,请求4会继续等待6ms之后才能被处理,而本申请中,由于已有累积时间Tcur=10ms,最新累积时间为Tcur=(10+(-6))=4ms大于等于0,则可以在请求4到达服务器1000A后,便可被服务器1000A立即处理。
在一个例子中,本步骤S2320中根据当前的待处理请求对应的更新后的累积时间,对当前的待处理请求进行处理还可以进一步包括:如果根据当前的待处理请求对应的更新后的累积时间小于零,则等待第一时间后再处理当前的待处理请求。其中,第一时间为累积时间的绝对值。
继续上述示例,请求5作为当前的待处理请求,请求5到达服务器1000A的时间为(t+36)ms,请求4与请求5的接收时间的时间间隔为2ms,该时间间隔2ms与预设时间间隔10ms的差值为-8,按照现有的解决方案,请求5会继续等待8ms之后才能被处理,而本申请中,由于已有累积时间Tcur=4ms,最新累积时间Tcur=(4+(-8))=-4ms小于0,则可以是在请求5到达服务器1000A后仅需要等待4ms便可被处理,使得服务器1000A能够进行更好的限流的同时,进一步提高资源利用率和集群性能。
在一个实施例中,对于某种情况,请求1完成后,请求2过了很久到达工作节点(好几个小时都有可能),那么此时对于请求2的请求间隔会非常大,以至于即使后面大量请求瞬时到达,也无法抵消完这个时间,那这样就失去了限流的意义,为了防止这种情况,在根据以上步骤S2320中根据当前的待处理请求对应的更新后的累积时间,对当前的待处理请求进行处理之前,本公开请求控制方法还包括:判断当前的待处理请求对应的更新后的累积时间是否大于预设的最大累积时间,在更新后的累积时间大于预设的最大累积时间时,对更新后的累积时间进行清零操作。
以上预设的最大累积时间可以是根据具体应用场景和具体应用需求设置的数值,例如,该预设的最大累积时间可以是15ms。
示例性地,如果更新后的累积时间Tcur=16ms,由于该更新后的累积时间16ms已经超过了预设的最大累积时间15ms,在此,可以对该更新后的累积时间进行清零操作,即,该更新后的累积时间Tcur=0ms,并在接收到控制指令后,重新开始执行余量时间的累加操作以更新累积时间。
根据本公开的实施例,集群中的工作节点在获知自身处理请求的每秒查询率(Queriespersecond,QPS)之后,便可将该每秒查询率上报至管理服务器,以由管理服务器记录该每秒查询率,这种将工作节点的每秒查询率统一记录在管理服务器的方式不仅可以提高数据存储的可靠性,还可以使得该数据能够成为共享资源供使用;同时,其是由管理服务器根据该每秒查询率确定是否触发控制指令,并在确定触发控制指令的情况下发送控制指令至工作节点,以使得工作节点根据该控制指令对待处理请求进行处理,这种由管理服务器对工作节点的处理能力进行判断,以由工作节点对待处理请求进行控制的方式,不易造成资源浪费,从而能充分利用资源,并且,由于无需对单个工作节点的请求进行配置,从而不易出错。
<方法实施例2>
请参看图4,其是根据另外一个实施例的请求控制方法的流程示意图。本实施例提供的请求控制方法可以应用于管理服务器,该管理服务器可以是RAFT服务器,关于RAFT服务器的介绍参见以上方法实施例1,本实施例在此不做赘述。例如,本实施例的请求控制方法可以应用于图1所示的服务器2000A中,也可以是应用于图1所示的服务器2000B或者是2000C中。如图4所示,该方法可以包括如下步骤S4100-S4300:
步骤S4100,接收集群中的工作节点上报的工作节点的每秒查询率。
该工作节点例如可以是图1所示的服务器1000a、服务器1000b以及服务器1000c中的任意一个。参照图1,例如可以是由服务器2000a接收集群中服务器1000A、服务器1000B和服务器1000C上报的自身的每秒查询率。
步骤S4200,根据工作节点的每秒查询率确定是否触发控制指令。
本实施例中,如何根据工作节点的每秒查询率确定是否触发控制指令可以参照以上方法实施例1,本实施例在此不做赘述。
步骤S4300,在确定触发控制指令的情况下,向工作节点下发控制指令。
控制指令可以是限流指令,以使得工作节点根据该限流指令对该工作节点当前的待处理请求进行控制,实现工作节点的流量控制,在此,工作节点如何对当前的待处理请求进行控制可以参照以上方式实施例1,本实施例在此不做赘述。
根据本公开的实施例,其是由管理服务器记录集群中各工作节点的每秒查询率,这种将工作节点的每秒查询率进行统一记录在管理服务器的方式提高数据存储的可靠性,同时可以使得该数据能够成为共享资源供使用;同时,其是由管理服务器根据该每秒查询率确定是否触发控制指令,并在确定触发控制指令的情况下发控制指令至工作节点,以使得工作节点根据该控制指令对待处理请求进行处理,这种由管理服务器对工作节点的处理能力进行判断,进而由工作节点对待处理请求进行控制的方式,不易造成资源浪费,从而能充分利用资源,并且,由于无需对单个工作节点的请求进行配置,从而不易出错。
<装置实施例1>
在本实施例中,还提供一种请求控制装置,其可以应用于集群中的工工作节点,例如可以应用于图1所示的服务器1000中,如图5所示,该装置5000可以包括获取模块5100,上报模块5200和接收模块5300。
获取模块5100,用于获取所述工作节点处理请求的每秒查询率。
上报模块5200,用于向管理服务器上报所述工作节点的每秒查询率,以供所述管理服务器根据所述工作节点的每秒查询率确定是否触发控制指令。
接收模块5300,用于接收所述管理服务器下发的所述控制指令,根据所述控制指令对当前的待处理请求进行处理,其中,所述控制指令为所述管理服务器根据所述工作节点的每秒查询率确定触发的指令。
在一个实施例中,所述管理服务器为RAFT集群。
在一个实施例中,接收模块4300可以用于:在接收到所述控制指令后,开始执行余量时间的累加操作以更新累积时间;其中,所述余量时间是任一请求的接收时间和与其相邻的前一个请求的接收时间的时间间隔与预设时间间隔的差值,所述累积时间的初始值为零;根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理。
在一个实施例中,接收模块4300还用于:如果根据当前的待处理请求对应的更新后的累积时间大于等于零,则处理当前的待处理请求;或者,如果根据当前的待处理请求对应的更新后的累积时间小于零,则等待第一时间后再处理当前的待处理请求,其中,所述第一时间为累积时间的绝对值。
在一个实施例中,该装置5000还可以包括复位模块(图中未示出)。
该复位模块,用于在根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理之前,判断所述当前的待处理请求对应的更新后的累积时间是否大于预设的最大累积时间;在所述更新后的累积时间大于所述预设的最大累积时间时,对所述更新后的累积时间进行清零操作。
<设备实施例>
在本实施例中,还提供一种电子设备,其可以包括根据本公开任意实施例的请求处理装置6000,用于实施本公开任意实施例的请求处理方法。
如图6所示,该电子设备6000还可以包括处理器6200和存储器6100,该存储器6100用于存储可执行的指令;该处理器6200用于根据指令的控制运行电子设备以执行根据本公开任意实施例的请求处理方法。
以上装置6000的各个模块可以由处理器6200运行该指令以执行根据本公开任意实施例的请求处理方法来实现。
该电子设备6000可以是服务器,例如,该电子设备6000可以是图1中的服务器1000等。
<介质实施例>
在本实施例中,还提供一种计算机可读存储介质,该计算机可读存储介质存储有可被计算机读取并运行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行如本公开以上任意实施例所述的方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。
Claims (12)
1.一种请求控制方法,其特征在于,应用于集群中的工作节点,所述工作节点用于处理请求,包括:
获取所述工作节点处理请求的每秒查询率;
向管理服务器上报所述工作节点的每秒查询率,以供所述管理服务器根据所述工作节点的每秒查询率确定是否触发控制指令;
接收所述管理服务器下发的所述控制指令,根据所述控制指令对当前的待处理请求进行处理,其中,所述控制指令为所述管理服务器根据所述工作节点的每秒查询率确定触发的指令,
其中,所述接收所述管理服务器下发的所述控制指令,根据所述控制指令对当前的待处理请求进行处理,包括:
在接收到所述控制指令后,开始执行余量时间的累加操作以更新累积时间,其中,所述余量时间是任一请求的接收时间和与其相邻的前一个请求的接收时间的时间间隔与预设时间间隔的差值,所述累积时间的初始值为零;
根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理。
2.根据权利要求1所述的方法,其特征在于,所述管理服务器为RAFT集群。
3.根据权利要求1所述的方法,其特征在于,所述根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理,包括:
如果当前的待处理请求对应的更新后的累积时间大于等于零,则处理当前的待处理请求;或者,
如果当前的待处理请求对应的更新后的累积时间小于零,则等待第一时间后再处理当前的待处理请求,其中,所述第一时间为累积时间的绝对值。
4.根据权利要求1所述的方法,其特征在于,在所述根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理之前,所述方法还包括:
判断所述当前的待处理请求对应的更新后的累积时间是否大于预设的最大累积时间;
在所述更新后的累积时间大于所述预设的最大累积时间时,对所述更新后的累积时间进行清零操作。
5.一种请求控制方法,应用于管理服务器,所述方法包括:
接收集群中的工作节点上报的所述工作节点的每秒查询率;
根据所述工作节点的每秒查询率确定是否触发控制指令;
在确定触发控制指令的情况下,向所述工作节点下发所述控制指令,以使所述工作节点在接收到所述控制指令后,开始执行余量时间的累加操作以更新累积时间,其中,所述余量时间是任一请求的接收时间和与其相邻的前一个请求的接收时间的时间间隔与预设时间间隔的差值,所述累积时间的初始值为零;根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理。
6.根据权利要求5所述的方法,其特征在于,所述管理服务器为RAFT集群。
7.根据权利要求5所述的方法,其特征在于,所述根据所述工作节点的每秒查询率确定是否要触发控制指令,包括:
根据所述工作节点的每秒查询率确定所述集群的总每秒查询率;
根据所述集群的总每秒查询率确定是否要触发控制指令。
8.根据权利要求7所述的方法,其特征在于,所述根据所述集群的总每秒查询率确定是否要触发控制指令,包括:
在所述集群的总每秒查询率大于预设的查询率阈值的情况下,触发控制指令。
9.根据权利要求5所述的方法,其特征在于,所述根据所述工作节点的每秒查询率确定是否要触发控制指令,包括:
在所述工作节点的每秒查询率大于预设的查询率阈值的情况下,触发控制指令。
10.一种请求控制装置,其特征在于,包括:
获取模块,用于获取工作节点处理请求的每秒查询率;
上报模块,用于向管理服务器上报所述工作节点的每秒查询率,以供所述管理服务器根据所述工作节点的每秒查询率确定是否触发控制指令;
接收模块,用于接收所述管理服务器下发的所述控制指令,根据所述控制指令对当前的待处理请求进行处理,其中,所述控制指令为所述管理服务器根据所述工作节点的每秒查询率确定触发的指令,
其中,所述接收模块还用于:
在接收到所述控制指令后,开始执行余量时间的累加操作以更新累积时间,其中,所述余量时间是任一请求的接收时间和与其相邻的前一个请求的接收时间的时间间隔与预设时间间隔的差值,所述累积时间的初始值为零;
根据当前的待处理请求对应的更新后的累积时间,对所述当前的待处理请求进行处理。
11.一种电子设备,其特征在于,包括:
所述电子设备包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述指令的控制运行所述电子设备执行如权利要求1-9任意一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有可被计算机读取执行的计算机程序,所述计算机程序用于在被所述计算机读取运行时,执行根据权利要求1-9中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010751892.4A CN111970339B (zh) | 2020-07-30 | 2020-07-30 | 请求控制方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010751892.4A CN111970339B (zh) | 2020-07-30 | 2020-07-30 | 请求控制方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111970339A CN111970339A (zh) | 2020-11-20 |
CN111970339B true CN111970339B (zh) | 2022-05-10 |
Family
ID=73363187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010751892.4A Active CN111970339B (zh) | 2020-07-30 | 2020-07-30 | 请求控制方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111970339B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112787850B (zh) * | 2020-12-28 | 2023-05-09 | 北京金山云网络技术有限公司 | 每秒查询率的调整方法、系统、装置及存储介质 |
CN113489776A (zh) * | 2021-06-30 | 2021-10-08 | 北京小米移动软件有限公司 | 热点检测方法、装置、监测服务器及存储介质 |
CN114615073A (zh) * | 2022-03-22 | 2022-06-10 | 广州方硅信息技术有限公司 | 访问流量控制方法及其装置、设备、介质 |
CN115174479B (zh) * | 2022-07-19 | 2023-10-13 | 天翼云科技有限公司 | 一种流量控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108390908A (zh) * | 2018-01-10 | 2018-08-10 | 努比亚技术有限公司 | 一种数据请求处理方法、装置及计算机可读存储介质 |
CN110198275A (zh) * | 2018-03-28 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种流量控制方法、系统、服务器及存储介质 |
CN110324253A (zh) * | 2019-06-29 | 2019-10-11 | 江苏满运软件科技有限公司 | 流量控制方法、装置、存储介质及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10037376B2 (en) * | 2016-03-11 | 2018-07-31 | Microsoft Technology Licensing, Llc | Throughput-based fan-out control in scalable distributed data stores |
US20170272541A1 (en) * | 2016-03-21 | 2017-09-21 | Linkedin Corporation | Local enforcement of computer resource quotas |
-
2020
- 2020-07-30 CN CN202010751892.4A patent/CN111970339B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108390908A (zh) * | 2018-01-10 | 2018-08-10 | 努比亚技术有限公司 | 一种数据请求处理方法、装置及计算机可读存储介质 |
CN110198275A (zh) * | 2018-03-28 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种流量控制方法、系统、服务器及存储介质 |
CN110324253A (zh) * | 2019-06-29 | 2019-10-11 | 江苏满运软件科技有限公司 | 流量控制方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111970339A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111970339B (zh) | 请求控制方法、装置及电子设备 | |
CN108572898B (zh) | 一种控制接口的方法、装置、设备、以及存储介质 | |
CN110275680B (zh) | 一种双控双活存储系统 | |
CN108632106B (zh) | 监控服务设备的系统 | |
CN112148505A (zh) | 数据跑批系统、方法、电子设备和存储介质 | |
CN107370808B (zh) | 一种用于对大数据任务进行分布式处理的方法 | |
CN111988355A (zh) | 限流方法、装置、服务器及服务器集群 | |
US11930292B2 (en) | Device state monitoring method and apparatus | |
CN111930306A (zh) | 一种数据处理方法和装置 | |
EP3399413A1 (en) | Component logical threads quantity adjustment method and device | |
CN107426012B (zh) | 一种基于超融合架构的故障恢复方法及其装置 | |
CN113760982A (zh) | 一种数据处理方法和装置 | |
US9647966B2 (en) | Device, method and non-transitory computer readable storage medium for performing instant message communication | |
CN110008681B (zh) | 访问控制方法、设备及系统 | |
CN110209548B (zh) | 服务控制方法、系统、电子设备及计算机可读存储介质 | |
CN107276853B (zh) | 流量处理方法及电子设备、计算机系统 | |
CN114546926B (zh) | 核心簇同步、控制方法、数据处理方法、核心、设备、介质 | |
CN112817701B (zh) | 定时器处理方法、装置、电子设备和计算机可读介质 | |
CN108718285B (zh) | 云计算集群的流量控制方法、装置及服务器 | |
EP3346671A1 (en) | Service processing method and equipment | |
CN110673793B (zh) | 存储设备节点事件管理方法、系统及电子设备和存储介质 | |
CN113259975A (zh) | 网络游戏连接方法、电子设备和计算机可读介质 | |
CN112134951A (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN113300901B (zh) | 一种数据流监控方法、装置、电子设备以及存储介质 | |
CN112306371A (zh) | 存储管理的方法、设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |