CN115242718B - 集群限流方法、装置、设备及介质 - Google Patents
集群限流方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115242718B CN115242718B CN202210704361.9A CN202210704361A CN115242718B CN 115242718 B CN115242718 B CN 115242718B CN 202210704361 A CN202210704361 A CN 202210704361A CN 115242718 B CN115242718 B CN 115242718B
- Authority
- CN
- China
- Prior art keywords
- current limiting
- server
- application server
- external request
- comparison result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及通信技术领域,公开了一种集群限流方法、装置、设备及介质,其中,集群限流方法包括:获取服务器集群中应用服务器的数量信息和服务器集群的总体限流阈值;根据数量信息和总体限流阈值,确定各应用服务器的单机限流阈值;根据接收到的外部请求,生成每个所述应用服务器的外部请求流量数据;将单机限流阈值与外部请求流量数据进行对比处理,以生成第一比较结果;将任一应用服务器的外部请求流量数据与其它应用服务器的外部请求流量数据进行对比处理,生成第二比较结果;基于第一比较结果和第二比较结果,以确定更新后的单机限流阈值与应用服务器接收到请求时将所有请求实时发送给限流服务器相比,本发明可改善限流服务器容易宕机的问题。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种集群限流方法、装置、设备及介质。
背景技术
服务限流,是当服务器资源不足以应对大量请求时,为了保障有限的资源能够正常服务,对系统按照特定的规则进行流量限制或规则限制的一种方法。常规的服务限流分为单机控流和集群控流。目前常采用的集群模式可以提供精确的限流计数,但是缺点也比较明显,就是当请求全部推送到一台限流服务器进行计数时,若该限流服务器的CPU(即中央处理器)和网络等资源达到瓶颈时,可能导致限流服务器宕机,无法正常提供限流服务。
发明内容
本发明提供一种集群限流方法、装置、设备及介质,以解决现有技术中集群限流模式容易导致限流服务器宕机的技术问题。
第一方面,为了实现上述目的及其他目的,提供了一种集群限流方法,包括:
获取服务器集群中应用服务器的数量信息和所述服务器集群的总体限流阈值;
根据所述数量信息和所述总体限流阈值,确定各所述应用服务器的单机限流阈值;
根据接收到的外部请求,生成每个所述应用服务器的外部请求流量数据;
将所述单机限流阈值与所述外部请求流量数据进行对比,生成第一比较结果;
将任一应用服务器的外部请求流量数据与其它应用服务器的外部请求流量数据进行对比处理,生成第二比较结果;
基于所述第一比较结果和所述第二比较结果,以确定更新后的单机限流阈值。
第二方面,为了实现上述目的及其他目的,提供了一种集群限流装置,包括:
获取模块,用于获取服务器集群中应用服务器的数量信息和所述服务器集群的总体限流阈值;
第一限流阈值分配模块,用于根据所述数量信息和所述总体限流阈值,确定各所述应用服务器的单机限流阈值;
数据生成模块,用于根据接收到的外部请求,生成每个所述应用服务器的所述外部请求流量数据;
第一比较模块,用于将所述单机限流阈值与所述外部请求流量数据进行对比处理,以生成第一比较结果;
第二比较模块,用于将任一应用服务器2的外部请求流量数据与其它应用服务器2的外部请求流量数据进行对比处理,生成第二比较结果;
第二限流阈值分配模块,用于基于所述第一比较结果和所述第二比较结果,以确定更新后的单机限流阈值。
第三方面,为了实现上述目的及其他目的,提供了一种计算机设备,包括:
一个或多个处理器和存储器;
所述存储器上存储有计算机程序,当一个或多个所述处理器执行所述计算机程序时,使得上述的方法。
第四方面,为了实现上述目的及其他目的,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可被一个或多个处理器所执行,以使所述处理器执行上述的方法。
上述集群限流方法、装置、设备及介质所实现的方案中,各应用服务器对应的应用服务器不再将接收到的请求发送给限流服务器,而是根据应用服务器的数量信息和总体限流阈值,自行确定对应应用服务器的单机限流阈值。与现有应用服务器接收到请求时将所有请求实时发送给限流服务器相比,解决了限流服务器容易宕机的问题。且应用服务器只对其接收到的请求进行限流处理,不易出现宕机现象。
当各应用服务器的外部请求流量数据不均衡时,则获取当前限流规则,根据当前限流规则重新分配单机限流阈值,以平衡外部请求流量与分配的单机限流阈值不匹配的问题,协调各应用服务器的单机限流阈值。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中集群限流方法的一应用环境示意图。
图2是本发明一实施例中集群限流方法的一流程示意图。
图3是图2中步骤S10的一具体实施方式流程示意图。
图4是图2中步骤S60的一具体实施方式流程示意图。
图5是图4中步骤S601的一具体实施方式流程示意图。
图6是本发明一实施例中集群限流系统的一结构示意图。
图7为本发明一实施例中集群限流系统的一局部结构示意图。
图8为本发明一实施例中第二限流阈值分配模块的一结构示意图。
图9是本发明一实施例中计算机设备的一结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明实施例提供的集群限流方法,可应用在如图1所示的应用环境中,其中,多个计算机1与多个应用服务器2之间通过网络通信,计算机内可例如安装有业务系统、dashboard(即商业智能仪表盘)控制台和zookeeper(即分布式应用程序协调服务)等。dashboard控制台主要用于创建业务的限流规则,创建完成后推送给zookeeper。zookeeper主要用于保存限流规则,并将限流规则推送给业务系统。每个业务系统对应设置一台应用服务器2,应用服务器2用于响应业务系统的服务请求。
在一些实施例中,多个应用服务器2组成服务器集群,当多个应用服务器2接收到的外部请求流量数据之间的差值小于或等于预设阈值时,总体限流阈值均匀分配到各应用服务器,由各应用服务器2自行计算各自的单机限流阈值。当各应用服务器2接收到的外部请求流量数据之间的差值大于预设阈值时,作为触发单机限流阈值重新分配的一个条件。可通过选取其中一台应用服务器2为主应用服务器,占用zookeeper中的主节点(即Master节点),其余应用服务器2为辅助应用服务器,占用zookeeper中的从节点(即Follower节点)。各辅助应用服务器负责每间隔一段时间上报这段时间的外部请求流量数据给主应用服务器,主应用服务器基于外部请求流量数据调整各辅助应用服务器的单机限流阈值,分配给各应用服务器2进行执行。后文中单机限流阈值、总体限流阈值和外部请求流量数据等均以同一固定周期内(例如5s内)的点击量为例进行说明。
值得说明的是,Zookeeper 可作为一个分布式服务协调框架,是一个典型的分布式数据一致性的解决方案。Zookeeper 在互联网公司广泛被应用于分布式通知与协调、数据发布与订阅、负载均衡、集群管理等。
请参阅图2所示,本发明实施例提供了一种集群限流方法,包括多个步骤,具体说明如下。
步骤S10中,获取服务器集群中应用服务器2的数量信息和所述服务器集群的总体限流阈值。
本实施例中由于应用服务器2与业务系统一一对应设置。总体限流阈值可以人为在dashboard控制台上根据需求设置,也可以设置为各应用服务器2的最大限流值之和。
如图3所示,在一实施例中,步骤S10中,获取服务器集群中应用服务器2的数量信息时,可包括多个步骤,具体说明如下。
步骤S101中,在应用服务器2启动时,对应应用服务器2进行临时节点的注册。
具体地,在zookeeper上进行临时节点的注册,以通过zookeeper实现应用服务器的数量监控。
步骤S102中,在应用服务器2关闭时,对应应用服务器2进行对应临时节点的删除。
其中,zookeeper 中例如可以有多种节点类型:临时节点、临时顺序节点、持久节点和持久顺序节点。其中,临时节点和持久节点的区别在于,临时节点的生命周期与客户端会话绑定。客户端与 Zookeeper 之间通过 TCP (传输控制协议)长连接保持有效的会话。随着客户端与 zookeeper 之间断开连接,客户端创建的所有临时节点会自动删除。而持久节点被创建以后,除非客户端进行主动删除操作,否则一直存在。
步骤S103中,获取临时节点的当前数量,并根据临时节点的当前数量生成数量信息。
具体地,客户端可以在目标节点上注册监听器(Watcher)。当监听的节点状态发生改变时(状态改变具体包含:节点创建、删除、数据更新、子节点变化),客户端会收到来自Zookeeper的消息推送,客户端通过编写回调函数来对消息进行处理。
从步骤S101-103可以看出,在启动应用服务器2和关闭应用服务器2的两种情况下,都会引起临时节点的数量变化,以便于根据客户端的增加、减少实时调整单机限流阈值。
步骤S20中,根据数量信息和总体限流阈值,确定各应用服务器2的单机限流阈值。
其中,根据数量信息和总体限流阈值,各应用服务器2计算其单机限流阈值,按照平均分配原则,将总体限流阈值平均分配给各应用服务器2,以确认各应用服务器2的单机限流阈值。
在一实施例中,当前应用服务器2的数量例如为6台,总体限流阈值为120万,各应用服务器2分别按照平均分配原则进行单机限流阈值的计算,即计算得出每台应用服务器2分配的单机限流阈值为20万。
若总体限流阈值不变,新增两台应用服务器2,则获取的应用服务器2的数量由6台变为8台,各应用服务器2的单机限流阈值则变为15万。
若总体限流阈值不变,减少两台应用服务器2,则获取的应用服务器2的数量由6台变为4台,计算得出每个应用服务器2分配的单机限流阈值为30万。
上述的整个单机限流阈值的计算过程,均由应用服务器2执行,无需将每台应用服务器2接收到的请求信息实时发送给限流服务器,避免限流服务器因为CPU和网络等资源达到瓶颈而出现宕机情况。
步骤S30中,根据接收到的外部请求,生成每个所述应用服务器2的外部请求流量数据。
由于各应用服务器2接收到的外部请求量并不一致,所以,需要应用服务器2分别将接收到的外部请求进行数量统计,生成应用服务器2的外部请求流量数据。即将外部请求流量数据的计算,分散到各应用服务器2分别计算,避免全部计算过程集中由同一服务器中进行。
步骤S40中,将单机限流阈值与外部请求流量数据进行对比,生成第一比较结果。
具体地,单机限流阈值与外部请求流量数据的第一比较结果例如为以下多种情况:
情况一:单机限流阈值大于外部请求流量数据。该种情况出现时,则表示当前的单机限流阈值能满足外部请求流量数据的需求。
情况二:单机限流阈值等于外部请求流量数据。此时,则表示单机限流阈值与外部请求流量数据基本一致。
情况三:单机限流阈值小于外部请求流量数据。该种情况出现时,则表示当前的单机限流阈值无法满足外部请求流量数据的需求。
步骤S50中,将任一应用服务器2的外部请求流量数据与其它应用服务器2的外部请求流量数据进行对比处理,生成第二比较结果。具体地,第二比较结果例如分为以下多种情况:
外部请求流量数据之间的差值大于预设阈值、等于预设阈值和小于预设阈值(例如,预设阈值设置为2000的点击量)。
在一实施例中,例如服务器集群中包括3台应用服务器,第一台应用服务器的外部请求流量数据为1万点击量,第二台应用服务器的外部请求流量数据为2万的点击量,第三台应用服务器的外部请求流量数据为9千点击量。
那么第一台应用服务器和第二台应用服务器的外部请求流量数据之间的差值为1万点击量(大于预设阈值设定的2000的点击量),第一台应用服务器和第三台应用服务器的外部请求流量数据之间的差值为1千的点击量(小于预设阈值设定的2000的点击量)。
步骤S60中,基于所述第一比较结果和第二比较结果,以确定更新后的单机限流阈值。
本实施例中以第一比较结果和第二比较结果,作为更新单机限流阈值的选择标准,以优化单机限流阈值,降低应用服务器2宕机可能性。
值得说明的是,更新后的单机限流阈值,指对单机限流阈值进行重新确认以得到的单机限流阈值,具体包括两种情况,第一种情况为,根据第一比较结果和第二比较结果,确认单机限流阈值无需重新分配,更新后的单机限流阈值与更新前的单机限流阈值一致。第二种情况为,根据第一比较结果和第二比较结果,确认单机限流阈值需重新分配,更新后的单机限流阈值即为重新分配后的单机限流阈值。
如图4所示,在本实施例的又一实施方式的步骤S60中,
若第一比较结果为应用服务器2的外部请求流量数据均小于单机限流阈值,且第二比较结果为各外部请求流量数据之间的差值均大于预设阈值时,则执行步骤S601。
若第一比较结果为应用服务器2的外部请求流量数据均小于对应的单机限流阈值,且第二比较结果为各外部请求流量数据之间的差值均小于或等于预设阈值时,则不执行单机限流阈值的重新分配。
若第一比较结果为应用服务器2的外部请求流量数据均大于单机限流阈值,则不论第二比较结果如何,均不执行单机限流阈值的重新分配。
若第一比较结果为部分应用服务器2的外部请求流量数据小于单机限流阈值,部分应用服务器2的外部请求流量数据大于或等于单机限流阈值,且第二比较结果为各外部请求流量数据之间的差值均大于预设阈值时,则执行步骤S601。
若第一比较结果为部分应用服务器2的外部请求流量数据大于单机限流阈值,其余应用服务器2的外部请求流量数据均等于单机限流阈值时,则不论第二比较结果如何,均不执行单机限流阈值的重新分配。
若第一比较结果为应用服务器2的外部请求流量数据均等于单机限流阈值,则不论第二比较结果如何,均不执行单机限流阈值的重新分配。
值得强调的是,上述仅为部分单机限流阈值是否重新分配的举例说明。
在步骤S601,将占用主节点的应用服务器2作为主应用服务器,将占用从节点的应用服务器2作为辅助应用服务器。
具体地,各应用服务器2在zookeeper中抢占主节点(Master节点),抢占到主节点的应用服务器2为主应用服务器;未抢占到主节点的应用服务器2占用zookeeper中的辅助节点(Follower节点),辅助节点对应的应用服务器2为辅助应用服务器。
如图5所示,在本实施例的又一实施方式的步骤S601中,
在步骤S6011,获取目标服务器的负载量,根据负载量,将多个应用服务器2划分为轻载服务器、满载服务器和过载服务器。
具体地,可以在zookeeper中获取节点列表,然后计算每个服务器节点的负载量。
在步骤S6012,根据轻载服务器负载量的大小,使负载量最小的轻载服务器,占用主节点,成为主应用服务器。
具体地,获取轻载服务器、满载服务器和过载服务器在数量信息中的占比;当轻载服务器占比大于预设的安全数值时,按照各轻载服务器负载量的大小排序,选取负载量最小的轻载服务器为主应用服务器;若轻载服务器占比小于或等于预设的安全数值,或满载服务器和过载服务器任一的占比大于预设的报警阈值时,则生成报警信息。
在一实施例中,应用服务器2例如有6台,其中4台被判定为轻载服务器,1台被判定为满载服务器,1台被判定为过载服务器,安全数值设置为50%,报警数值设置为80%,则在该施例中,轻载服务器在数量信息中的占比为2/3(大于50%),则选取负载量最小的轻载服务器为主应用服务器。
在另一实施例中,应用服务器2例如有6台,其中2台被判定为轻载服务器,2台被判定为满载服务器,2台被判定为过载服务器,安全数值设置为50%,报警数值设置为80%,则在该施例中,轻载服务器在数量信息中的占比为1/3(小于50%),满载服务器或过载服务器在数量信息中的占比为1/3(小于80%),则生成报警信息,以提示工作人员。
又一实施例中,应用服务器2例如有6台,其中0台被判定为轻载服务器,5台被判定为满载服务器,1台被判定为过载服务器,安全数值设置为50%,报警数值设置为80%,则在该施例中,轻载服务器在数量信息中的占比为0/6(小于50%),满载服务器或过载服务器在数量信息中的占比为5/6(大于80%),则生成报警信息,以提示工作人员。
由于涉及的实施方式较多,在此不再一一列举。
在步骤S6013,当主应用服务器宕机时,进行主应用服务器的重新选取。
具体地,当主应用服务器发生网络故障或其他异常,出现短暂不可用时,在预设时间范围(例如5秒)内重新连接当前的主应用服务器,若连接成功,则当前应用服务器仍作为主应用服务器使用,若预设时间内主应用服务器没有连接成功,则执行S6012,重新选取出主应用服务器。
主应用服务器需要计算各辅助应用服务器的单机限流阈值,步骤S6011至S6013中选取的主应用服务器为负载量小的应用服务器,以降低主应用服务器宕机的可能性。
可见,在上述方案中,各应用服务器不再将接收到的请求信息发送给限流服务器,而是根据应用服务器的数量信息和总体限流阈值,自行确定对应应用服务器的单机限流阈值。与现有应用服务器接收到请求信息时将所有请求信息实时发送给限流服务器相比,解决了限流服务器容易宕机的问题。且应用服务器只对其接收到的请求信息进行限流处理,不易出现宕机现象。
在步骤S602,将各外部请求流量数据进行比较处理,以生成比例关系。
具体地,通过主应用服务器获取辅助应用服务器上报的外部请求流量数据,以将各外部请求流量数据进行比较处理,以生成比例关系。
在步骤S603,根据比例关系,对单机限流阈值进行重新分配,生成更新后的单机限流阈值。
从步骤S601-S603可知,本实施例中,综合考虑了外部请求流量数据与单机限流阈值之间的关系,以及各应用服务器2的外部请求流量数据之间的关系,以降低应用服务器2宕机的可能性。
Master节点获取的数据是各Follower节点统计好的数据,Master节点只需基于Follower节点统计好的外部请求流量数据和原有的单机限流阈值等,重新进行单机限流阈值分配即可,计算工作量小。且Follower节点周期性的上报外部请求流量数据,避免了Master节点时时刻刻接收各辅助应用服务器上报的外部请求流量数据,有效的降低了Master节点宕机情况的出现。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种集群限流装置,该集群限流装置与上述实施例中集群限流方法一一对应。
如图6所示,该集群限流装置包括:
获取模块10,用于获取服务器集群中应用服务器2的数量信息和所述服务器集群的总体限流阈值。
第一限流阈值分配模块20,用于根据所述数量信息和所述总体限流阈值,确定各所述应用服务器2的单机限流阈值。
数据生成模块30,用于根据接收到的外部请求,生成每个所述应用服务器2的所述外部请求流量数据。
第一比较模块40,用于将所述单机限流阈值与所述外部请求流量数据进行对比处理,以生成第一比较结果。
第二比较模块50,用于将任一应用服务器2的外部请求流量数据与其它应用服务器2的外部请求流量数据进行对比处理,生成第二比较结果。
第二限流阈值分配模块60,用于基于所述第一比较结果和所述第二比较结果,以确定更新后的单机限流阈值。
Zookeeper对各应用服务器2的情况进行监听,以供获取模块10进行信息获取。第一限流阈值分配模块20根据平均分配原则,通过简单的计算,即可获得应用服务器2的单机限流阈值,使得应用服务器2计算工作量小,降低应用服务器2出现宕机的可能性。且随着应用服务器2数量信息的变化,第一限流阈值分配模块20将重新计算单机限流阈值,以适应应用服务器2的增加或减少。
如图7所示,在一实施例中,该集群限流装置还包括:
注册模块101,用于在应用服务器2启动时,对应应用服务器2进行临时节点的注册。
注销模块102,用于在应用服务器2关闭时,对应应用服务器2进行对应临时节点的注销。
数量信息统计模块103,用于获取临时节点的当前数量,并根据临时节点的当前数量生成数量信息。
注册模块101、注销模块102以及数量信息统计模块103的设置,以便于对应用服务器2当前数量进行统计。
在具体实施例中,当业务系统启动后,注册模块会在zookeeper注册应用服务器2的IP地址:端口(port)信息。若业务系统已经在zookeeper注册IP:port信息,则无需重复注册。
如图8所示,在一实施例中,第二限流阈值分配模块60包括:
分组单元601,用于第一比较结果为部分应用服务器2的外部请求流量数据小于单机限流阈值,部分应用服务器2的外部请求流量数据大于或等于单机限流阈值,且第二比较结果为各外部请求流量数据之间的差值均大于预设阈值时,获取目标服务器的负载量,根据负载量,将多个应用服务器2划分为轻载服务器、满载服务器和过载服务器。
选取单元602,用于根据轻载服务器负载量的大小,使负载量最小的轻载服务器,占用主节点,成为主应用服务器。其余应用服务器2占用从节点,成为辅助应用服务器。还用于当主应用服务器宕机时,进行主应用服务器的重新选取。
比例关系生成单元603,将各外部请求流量数据进行比较处理,以生成比例关系。
分配单元604,用于根据比例关系,对单机限流阈值进行重新分配,生成更新后的单机限流阈值。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种集群限流方法客户端侧的功能或步骤。
在一个实施例中,提供了一种计算机设备,包括:
一个或多个处理器和存储器。
所述存储器上存储有计算机程序,当所述一个或多个处理器执行所述程序时,使得所述设备执行上述方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可被一个或多个处理器所执行,以使处理器执行上述方法。
所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card ,SMC),安全数字(Secure Digital ,SD)卡,闪存卡(Flash Card)等。当然,存储器还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器通常用于存储安装于计算机设备的操作系统和各类应用软件,例如上述实施例中集群限流系统的程序代码等。此外,存储器还可以用于暂时地存储已经输出或者将要输出的各类数据。处理器在一些实施例中可以是中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器通常用于控制计算机设备的总体操作。本实施例中,处理器用于运行存储器中存储的程序代码或者处理数据,例如运行上述集群限流系统,以实现上述集群限流方法。所述网络接口可包括无线网络接口或有线网络接口,该网络接口通常用于在所述计算机设备与其他电子装置之间建立通信连接。例如,所述网络接口用于通过网络将所述计算机设备与外部终端相连,在所述计算机设备与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobilecommunication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中,服务端侧以及客户端侧的相关描述,为避免重复,这里不再一一描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (9)
1.一种集群限流方法,其特征在于,应用于应用服务器,所述集群限流方法包括:
获取服务器集群中应用服务器的数量信息和所述服务器集群的总体限流阈值;
根据所述数量信息和所述总体限流阈值,确定各所述应用服务器的单机限流阈值;
根据接收到的外部请求,生成每个所述应用服务器的外部请求流量数据;
将所述单机限流阈值与所述外部请求流量数据进行对比处理,以生成第一比较结果;
将任一应用服务器的外部请求流量数据与其它应用服务器的外部请求流量数据进行对比处理,生成第二比较结果;
基于所述第一比较结果和所述第二比较结果,以确定更新后的单机限流阈值;
其中,所述根据所述第一比较结果和所述第二比较结果,以确定更新后的单机限流阈值,包括:
若所述第一比较结果为各所述应用服务器的所述外部请求流量数据均大于所述单机限流阈值,则不执行所述单机限流阈值的重新分配;
若第一比较结果为部分所述应用服务器的所述外部请求流量数据大于所述单机限流阈值,部分所述应用服务器的所述外部请求流量数据小于所述单机限流阈值,且所述第二比较结果为各所述外部请求流量数据之间的差值均大于预设阈值时,则将各所述外部请求流量数据进行比较处理,以生成比例关系;
根据所述比例关系,对所述单机限流阈值进行重新分配,生成更新后的单机限流阈值。
2.如权利要求1所述的集群限流方法,其特征在于,所述方法还包括:
在生成所述比例关系前,将占用主节点的应用服务器作为主应用服务器,将占用从节点的应用服务器作为辅助应用服务器;
通过所述主应用服务器获取所述辅助应用服务器上报的所述外部请求流量数据,以将各所述外部请求流量数据进行比较处理,以生成所述比例关系。
3.如权利要求2所述的集群限流方法,其特征在于,还包括:
获取各应用服务器的负载量,根据所述负载量,将各所述应用服务器划分为轻载服务器、满载服务器和过载服务器;
根据所述轻载服务器的负载量大小,选择负载量最小的所述轻载服务器,占用主节点,成为所述主应用服务器。
4.如权利要求3所述的集群限流方法,其特征在于,还包括:
在将多个所述应用服务器划分为轻载服务器、满载服务器和过载服务器后,获取所述轻载服务器、满载服务器和过载服务器在所述数量信息中的占比;
当所述轻载服务器占比大于预设的安全数值时,根据所述轻载服务器的负载量大小,选择负载量最小的所述轻载服务器,占用主节点,成为所述主应用服务器;
若所述轻载服务器占比小于或等于预设的安全数值,或当所述满载服务器和所述过载服务器任一的占比大于预设的报警阈值时,则生成报警信息。
5.如权利要求2所述的集群限流方法,其特征在于,还包括:
设置所述辅助应用服务器上报外部请求流量数据的采集周期和间隔周期,以指示所述辅助应用服务器根据所述采集周期和间隔周期上报所述外部请求流量数据。
6.如权利要求1所述的集群限流方法,其特征在于,所述获取服务器集群中应用服务器的数量信息,包括:
在应用服务器启动时,对应应用服务器进行临时节点的注册;
在应用服务器关闭时,对应应用服务器进行对应临时节点的删除;
获取所述临时节点的当前数量,并根据所述临时节点的所述当前数量生成所述数量信息。
7.一种集群限流装置,其特征在于,应用于应用服务器,所述集群限流装置包括:
获取模块,用于获取服务器集群中应用服务器的数量信息和所述服务器集群的总体限流阈值;
第一限流阈值分配模块,用于根据所述数量信息和所述总体限流阈值,确定各所述应用服务器的单机限流阈值;
数据生成模块,用于根据接收到的外部请求,生成每个所述应用服务器的外部请求流量数据;
第一比较模块,用于将所述单机限流阈值与所述外部请求流量数据进行对比处理,以生成第一比较结果;
第二比较模块,用于将任一应用服务器的外部请求流量数据与其它应用服务器的外部请求流量数据进行对比处理,生成第二比较结果;
第二限流阈值分配模块,用于基于所述第一比较结果和所述第二比较结果,以确定更新后的单机限流阈值;
其中,所述根据所述第一比较结果和所述第二比较结果,以确定更新后的单机限流阈值,包括:
若所述第一比较结果为各所述应用服务器的所述外部请求流量数据均大于所述单机限流阈值,则不执行所述单机限流阈值的重新分配;
若第一比较结果为部分所述应用服务器的所述外部请求流量数据大于所述单机限流阈值,部分所述应用服务器的所述外部请求流量数据小于所述单机限流阈值,且所述第二比较结果为各所述外部请求流量数据之间的差值均大于预设阈值时,则将各所述外部请求流量数据进行比较处理,以生成比例关系;
根据所述比例关系,对所述单机限流阈值进行重新分配,生成更新后的单机限流阈值。
8.一种计算机设备,其特征在于,包括:
一个或多个处理器和存储器;
所述存储器上存储有计算机程序,当一个或多个所述处理器执行所述计算机程序时,使得所述计算机设备执行如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序可被一个或多个处理器所执行,以使所述处理器执行如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210704361.9A CN115242718B (zh) | 2022-06-21 | 2022-06-21 | 集群限流方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210704361.9A CN115242718B (zh) | 2022-06-21 | 2022-06-21 | 集群限流方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115242718A CN115242718A (zh) | 2022-10-25 |
CN115242718B true CN115242718B (zh) | 2024-01-30 |
Family
ID=83670045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210704361.9A Active CN115242718B (zh) | 2022-06-21 | 2022-06-21 | 集群限流方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242718B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116137611B (zh) * | 2023-04-20 | 2023-07-25 | 中国工商银行股份有限公司 | 流量分发方法、装置、设备和介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092650A (zh) * | 2013-12-04 | 2014-10-08 | 腾讯数码(天津)有限公司 | 一种分配业务请求的方法和装置 |
CN108667654A (zh) * | 2018-04-19 | 2018-10-16 | 北京奇艺世纪科技有限公司 | 服务器集群自动扩容方法及相关设备 |
CN110708258A (zh) * | 2019-09-29 | 2020-01-17 | Oppo广东移动通信有限公司 | 流量控制方法、装置、服务器及存储介质 |
CN111367651A (zh) * | 2018-12-26 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 服务限流系统、方法、装置及电子设备 |
CN111415261A (zh) * | 2020-03-27 | 2020-07-14 | 中国建设银行股份有限公司 | 银行系统的流控阈值动态更新的控制方法、系统和装置 |
CN111767142A (zh) * | 2020-06-23 | 2020-10-13 | 中国工商银行股份有限公司 | 服务节点的限流阈值设置方法和服务端设备 |
CN111786895A (zh) * | 2020-03-16 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 动态全局限流的方法和装置 |
WO2020220739A1 (zh) * | 2019-04-28 | 2020-11-05 | 华为技术有限公司 | 一种请求控制方法、相关设备及计算机存储介质 |
CN112422440A (zh) * | 2019-08-22 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种应用于服务器的流量控制方法以及相关装置 |
CN112437018A (zh) * | 2020-11-19 | 2021-03-02 | 百度在线网络技术(北京)有限公司 | 分布式集群的流量控制方法、装置、设备和存储介质 |
CN112769657A (zh) * | 2020-12-26 | 2021-05-07 | 上海优扬新媒信息技术有限公司 | 一种流量控制方法及装置 |
CN113285883A (zh) * | 2021-05-25 | 2021-08-20 | 挂号网(杭州)科技有限公司 | 一种访问请求的限流方法及装置、电子设备、存储介质 |
-
2022
- 2022-06-21 CN CN202210704361.9A patent/CN115242718B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092650A (zh) * | 2013-12-04 | 2014-10-08 | 腾讯数码(天津)有限公司 | 一种分配业务请求的方法和装置 |
CN108667654A (zh) * | 2018-04-19 | 2018-10-16 | 北京奇艺世纪科技有限公司 | 服务器集群自动扩容方法及相关设备 |
CN111367651A (zh) * | 2018-12-26 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 服务限流系统、方法、装置及电子设备 |
WO2020220739A1 (zh) * | 2019-04-28 | 2020-11-05 | 华为技术有限公司 | 一种请求控制方法、相关设备及计算机存储介质 |
CN112422440A (zh) * | 2019-08-22 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种应用于服务器的流量控制方法以及相关装置 |
CN110708258A (zh) * | 2019-09-29 | 2020-01-17 | Oppo广东移动通信有限公司 | 流量控制方法、装置、服务器及存储介质 |
CN111786895A (zh) * | 2020-03-16 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 动态全局限流的方法和装置 |
CN111415261A (zh) * | 2020-03-27 | 2020-07-14 | 中国建设银行股份有限公司 | 银行系统的流控阈值动态更新的控制方法、系统和装置 |
CN111767142A (zh) * | 2020-06-23 | 2020-10-13 | 中国工商银行股份有限公司 | 服务节点的限流阈值设置方法和服务端设备 |
CN112437018A (zh) * | 2020-11-19 | 2021-03-02 | 百度在线网络技术(北京)有限公司 | 分布式集群的流量控制方法、装置、设备和存储介质 |
CN112769657A (zh) * | 2020-12-26 | 2021-05-07 | 上海优扬新媒信息技术有限公司 | 一种流量控制方法及装置 |
CN113285883A (zh) * | 2021-05-25 | 2021-08-20 | 挂号网(杭州)科技有限公司 | 一种访问请求的限流方法及装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115242718A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
CN107295080B (zh) | 应用于分布式服务器集群的数据存储方法和服务器 | |
EP3675420B1 (en) | Distributed storage system upgrade management method and device, and distributed storage system | |
CN110308985B (zh) | 云专属服务器资源管理方法、装置、设备及存储介质 | |
US11432137B2 (en) | Service notification method for mobile edge host and apparatus | |
WO2020119060A1 (zh) | 容器资源调度方法和系统、服务器及计算机可读存储介质 | |
CN109873714B (zh) | 云计算节点配置更新方法及终端设备 | |
WO2016173280A1 (zh) | 监控管理方法及装置 | |
CN109800261B (zh) | 双数据库连接池的动态控制方法、装置及相关设备 | |
CN114189525B (zh) | 服务请求方法、装置和电子设备 | |
US20160234129A1 (en) | Communication system, queue management server, and communication method | |
CN106302640A (zh) | 数据请求处理方法及装置 | |
CN115242718B (zh) | 集群限流方法、装置、设备及介质 | |
US10216593B2 (en) | Distributed processing system for use in application migration | |
CN114900449B (zh) | 一种资源信息管理方法、系统及装置 | |
CN109547253B (zh) | 文件下载方法、装置、计算机设备和存储介质 | |
CN109587068B (zh) | 流量切换方法、装置、设备及计算机可读存储介质 | |
CN109413117B (zh) | 分布式数据计算方法、装置、服务器及计算机存储介质 | |
WO2023142824A1 (zh) | Gpu资源利用率的监控方法、装置、计算机设备及介质 | |
CN115225645B (zh) | 一种服务更新方法、装置、系统和存储介质 | |
CN109614242B (zh) | 一种计算能力共享方法、装置、设备及介质 | |
CN117014189A (zh) | 多网关调度处理方法、设备、系统、服务器及存储介质 | |
CN116389385A (zh) | 一种系统资源处理方法、装置、存储介质及设备 | |
CN115426356A (zh) | 一种分布式定时任务锁更新控制执行方法和装置 | |
CN110995890B (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 |