掌桥专利:专业的专利平台
掌桥专利
首页

分布式集群的流量控制方法、装置、设备和存储介质

文献发布时间:2023-06-19 10:03:37


分布式集群的流量控制方法、装置、设备和存储介质

技术领域

本申请涉及计算机技术领域,尤其计算机集群控制技术,具体涉及一种分布式集群的流量控制方法、装置、设备和存储介质。

背景技术

现有互联网业务的流量较大,一般通过分布式的服务器集群来为大量用户提供业务服务。通常一个分布式集群可包括多个单机服务器,每个服务器可配置一种或多种业务服务能力,成为服务实例。当用户的客户端发起业务服务请求时,该业务服务请求会按照调度策略路由到某台单机的服务实例接口,进而进行业务服务处理。在上述业务服务的过程中,如果流量过大,单机的处理资源无法负担,则需要进行流量控制。

现有流量控制方案中,可以进行单机的流量控制,也可以进行集群整体流量控制。但是,单机流量控制的流量控制策略单一,无法有效应对集群流量不均匀的问题;集群流量控制则会带来业务处理性能的损耗,流量控制的精确性较低。

发明内容

本申请提供了一种分布式集群的流量控制方法、装置、设备以及存储介质,以优化流量控制效果。

根据本申请的一方面,提供了一种分布式集群的流量控制方法,其中,分布式集群包括至少一个控制服务器和至少两个单机,每个单机配置有至少一个服务实例,该方法由分布式集群中的控制服务器执行,该方法包括:

获取多个单机中各自服务实例的当前流量数据;

根据各单机服务实例的当前流量数据,为各单机的服务实例配置全局流量阈值,并确定分布式集群的全局流量状态,以指示单机的服务实例,根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,进行业务请求的流量控制。

根据本申请的一方面,提供了一种分布式集群的流量控制方法,其中,分布式集群包括至少一个控制服务器和至少两个单机,每个单机配置有至少一个服务实例,该方法由分布式集群中的单机执行,该方法包括:

将单机的服务实例当前流量数据上报控制服务器;

接收控制服务器根据各单机服务实例的当前流量数据,为单机的服务实例配置的全局流量阈值,和分布式集群的全局流量状态;

根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,进行业务请求的流量控制。

根据本申请的另一方面,提供了一种分布式集群的流量控制的装置,其中,分布式集群包括至少一个控制服务器和至少两个单机,每个单机配置有至少一个服务实例,装置配置于分布式集群中的控制服务器,包括:

单机流量数据获取模块,用于获取多个单机中各自服务实例的当前流量数据;

配置模块,用于根据各单机服务实例的当前流量数据,为各单机的服务实例配置全局流量阈值,并确定分布式集群的全局流量状态,以指示各单机的服务实例,根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,进行业务请求的流量控制。

根据本申请的另一方面,提供了一种分布式集群的流量控制的装置,其中,分布式集群包括至少一个控制服务器和至少两个单机,每个单机配置有至少一个服务实例,装置配置于分布式集群中的单机,包括:

流量数据上报模块,用于将单机的服务实例当前流量数据上报控制服务器;

配置数据接收模块,用于接收控制服务器根据各单机服务实例的当前流量数据,为单机的服务实例配置的全局流量阈值,和分布式集群的全局流量状态;

流量控制模块,用于根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,进行业务请求的流量控制。

根据本申请的另一方面,提供了一种电子设备,包括:

至少一个处理器;以及

与至少一个处理器通信连接的存储器;其中,

存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本申请任意实施例的分布式集群的流量控制方法。

根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行本申请任意实施例的分布式集群的流量控制方法。

根据本申请的技术兼顾了单机流量的精确控制和集群整体性控制,优化了分布式集群的业务流量控制效果。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是根据本申请实施例的一种分布式集群的流量控制方法的示意图;

图2是根据本申请实施例的一种分布式集群的流量控制方法的示意图;

图3是根据本申请实施例的一种分布式集群的流量控制方法的示意图;

图4是根据本申请实施例的一种分布式集群的流量控制方法的示意图;

图5是根据本申请实施例的一种分布式集群的流量控制方法的示意图;

图6是根据本申请实施例的一种分布式集群的流量控制方法的示意图;

图7a是根据本申请实施例的一种分布式集群的流量控制方法的示意图;

图7b是根据本申请实施例的一种Bucket环的示意图;

图8是根据本申请实施例的一种分布式集群的流量控制装置的结构示意图;

图9是根据本申请实施例的另一种分布式集群的流量控制装置的结构示意图;

图10是用来实现本申请实施例的分布式集群的流量控制方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1为本申请实施例的分布式集群的流量控制方法的流程示意图,本实施例可适用于通过分布式集群中的单机和控制服务器相互配合以控制分布式集群的业务流量的情况。该方法可由一种分布式集群的流量控制装置来执行,该装置采用软件和/或硬件的方式实现。本申请实施例中,分布式集群包括至少一个控制服务器和至少两个单机,每个单机配置有至少一个服务实例,其中,控制服务器示例性的为TokenServer(访问令牌服务器),控制服务器可负责一种或多种业务服务的流量控制,控制服务器的数量可以为一个或多个。

本申请实施例中,分布式集群的流量控制方法由控制服务器执行,参见图1,分布式集群的流量控制方法具体如下:

S101、获取多个单机中各自服务实例的当前流量数据。

本申请实施例中,当用户的客户端发起业务服务请求时,该业务服务请求会按照调度策略路由到某台单机的服务实例接口,进而进行业务服务处理,因此,当前流量数据可选的为单机的服务实例接收到的业务流量。分布式集群中的各单机可主动将自身服务实例接收的业务流量上报到控制服务器,例如周期性的上报,进而控制服务器可定时汇总多个单机中各自服务实例的当前流量数据。可选的,流量控制是以某种业务服务为对象进行操作的,即将各个单机中属于同一种业务服务的服务实例进行统一的流量控制。

S102、根据各单机服务实例的当前流量数据,为各单机的服务实例配置全局流量阈值,并确定分布式集群的全局流量状态,以指示各单机的服务实例,根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,进行业务请求的流量控制。

目前现有技术中,针对分布式集群进行集群整体流量控制时,所有业务请求被随机选择发送至任一单机的服务实例时,业务服务实例会请求控制服务器进行流量控制,即请求控制服务器来判断是否超过预设阈值,以此达到对整个集群的流量控制,最大程度维护集群的高可用。但此方案的缺点在于:每个请求流量经由控制服务器调度都有几毫秒的性能损耗;控制服务器需要承接集群的大部分流量,机器成本巨大;控制服务器的可用性直接影响整体的流量控制效果。

而为了解决现有技术的缺点,本申请实施例中,控制服务器不再用于集群整体流量控制,而是用于根据各单机服务实例的当前流量数据,为各单机的服务实例配置全局流量阈值,以及确定分布式集群的全局流量状态,进而由各单机根据全局流量状态、全局流量阈值和单机中配置的单机流量阈值,在本地进行流量控制。在此需要说明的是,通过单机在本地进行流量控制,保证了流量控制的效率,同时由于引入了全局流量状态和全局流量阈值,有效解决了集群流量分布不均匀的问题。

在为各单机的服务实例配置全局流量阈值时,可选的,预先为分布式集群设定总流量阈值,该总流量阈值是针对一种业务服务确定的,进而根据各单机服务实例的当前流量数据占比情况,将总流量阈值按比例分配给各单机的服务实例,以作为各单机的全局流量阈值,也即全局流量阈值用于保证集群内的流量分布均衡。示例性的,分布式集群包括4个单机,各单机服务实例的当前流量数据占比约为1:1:1:1,则将总流量阈值均分成四等份作为各单机的全局流量阈值。

分布式集群的全局流量状态是根据各单机服务实例的当前流量数据的总和与总流量阈值确定的,因此全局流量状态可以是各单机服务实例的当前流量数据的总和大于总流量阈值,或各单机服务实例的当前流量数据的总和小于总流量阈值。

进一步的,在为各单机的服务实例配置全局流量阈值,并确定分布式集群的全局流量状态以后,可指示单机的服务实例,根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,规划流量控制策略,进而根据流量控制策略进行业务流量控制,其中,单机流量阈值为该单机所能承担的最大的业务请求流量,是由单机的性能决定的。在此需要说明的是,相比于现有技术中单机的服务实例只能根据单机流量阈值控制流量,本申请实施例中,单机服务实例在进行业务请求的流量控制时,还引入了全局流量状态、全局流量阈值,使得单机服务实例可以规划更丰富的流量控制策略。

本申请实施例中,分布式集群中各单机的服务实例,根据控制服务器根据为其配置的全局流量阈值,分布式集群的全局流量状态和自身的单机流量阈值,进行业务请求的流量控制,兼顾了单机流量的精确控制和集群整体性控制,优化了分布式集群的业务流量控制效果。

图2是根据本申请实施例的分布式集群的流量控制方法的流程示意图,本实施例是在上述实施例的基础上进行优化,参见图2,分布式集群的流量控制方法具体如下:

S201、获取多个单机中各自服务实例的当前流量数据。

S202、根据各单机服务实例的当前流量数据,为各单机的服务实例配置全局流量阈值,并确定分布式集群的全局流量状态。

S203、根据全局流量状态确定分布式集群的健康度,以使单机的服务实例,根据全局流量状态识别分布式集群的健康度,并根据健康度确定全局流量阈值的使用策略。

由于分布式集群的全局流量状态是根据各单机服务实例的当前流量数据的总和与总流量阈值确定的,如果全局流量状态为各单机服务实例的当前流量数据的总和大于总流量阈值,则表明当前的流量数据超出了集群所能承担的最大流量,此时分布式集群处于不健康状态,也即分布式集群不具有流量处理能力,示例性的,可用健康度为0进行表示;如果全局流量状态为各单机服务实例的当前流量数据的总和小于总流量阈值,则表明当前的流量数据未超出集群所能承担的最大流量,此时分布式集群处于健康状态,也即分布式集群具有流量处理能力,示例性的,可用健康度为1进行表示。

进一步的,根据健康度确定全局流量阈值的使用策略包括:如果健康度表示分布式集群具有流量处理能力,则确定不使用全局流量阈值;如果健康度表示分布式集群不具有流量处理能力,则确定使用全局流量阈值。需要说明的是,通过健康度确定全局流量阈值的使用策略,可提升流量控制的整体性控制。

S204、指示单机的服务实例根据单机流量阈值以及全局流量阈值的使用策略来进行业务请求的流量控制。

进一步的,单机确定全局流量阈值的使用策略后,若使用策略为不使用全局流量阈值,可直接将单机服务实例的当前流量数据与单机流量阈值进行比对,并根据比对结果进行流量控制;若使用策略为使用全局流量阈值,可直接将单机服务实例的当前流量数据分别与全局流量阈值和单机流量阈值进行比对,并根据比对结果进行流量控制。

本申请实施例中,控制服务器根据健康度确定全局流量阈值的使用策略,进而单机的服务实例根据单机流量阈值以及全局流量阈值的使用策略来进行业务请求的流量控制,兼顾了单机流量的精确控制和集群整体性控制,优化了流量控制效果。

图3是根据本申请实施例的分布式集群的流量控制方法的流程示意图,本实施例是在上述实施例的基础上进行优化,参见图3,分布式集群的流量控制方法具体如下:

S301、通过网页或客户端形式的流控管理平台,获取用户为业务服务配置的申报流量。

本申请实施例中,流控管理平台是以网页或客户端形式呈现的用户交互的平台化界面,用户可通过任意终端登录,进行参数配置。可配置的参数包括:基于单机能力估测的单机上限阈值;每个用户可申请某类业务服务的流量。通过平台配置的参数,可实时更新至控制服务器生效,无需重启服务实例进行配置。控制服务器可通过平台采集统计数据包括:用户为业务服务配置的申报流量;集群服务的总流量、放行量、拒绝量的监控报表;可以配置报警方式和规则:自定义规则提供短信、电话、机器人、邮件等自动报警。

S302、获取多个单机中各自服务实例的当前流量数据。

S303、根据各单机服务实例的当前流量数据确定服务实例的流量在各单机服务实例中的实时分布状态。

其中,实时分布状态可选的为各个服务实例的当前流量占比。

S304、为各单机服务实例配置与实时分布状态匹配的全局流量阈值。

本申请实施例中,为各单机服务实例配置与实时分布状态匹配的全局流量阈值,实现了动态配置全局流量阈值的目的,由此保证了分布式集群流量分布的均衡。

在一种可选的实施方式中,控制服务器为各单机服务实例配置与实时分布状态匹配的全局流量阈值包括:控制服务器根据用户对服务实例所对应业务服务配置的总申报流量和各单机的处理能力,为各单机服务实例配置与实时分布状态匹配的全局流量阈值,其中,单机处理能力包括单机的CPU、内存、存储空间、网络接口带宽等。需要说明的是,在配置全局流量阈值时,参考了单机的处理能力,提升配置全局流量阈值的准确性。

S305、确定分布式集群的全局流量状态。

S306、指示单机的服务实例,根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,进行业务请求的流量控制。

本申请实施例中,用户可通过流控管理平台配置参数,提升了可交互性,而且配置的参数及时生效,无需重启;同时服务实例可参考流量的实时分布状态,动态配置全局流量阈值,保证了分布式集群流量分布的均衡。

图4为本申请实施例的分布式集群的流量控制方法的流程示意图,本实施例可适用于通过分布式集群中的单机和控制服务器相互配合以控制分布式集群的业务流量的情况。该方法可由一种分布式集群的流量控制装置来执行,该装置采用软件和/或硬件的方式实现。本申请实施例中,分布式集群包括至少一个控制服务器和至少两个单机,每个单机配置有至少一个服务实例,其中,控制服务器示例性的为TokenServer(访问令牌服务器),控制服务器可负责一种或多种业务服务的流量控制,控制服务器的数量可以为一个或多个。

本申请实施例中,分布式集群的流量控制可由单机执行,参见图4,该方法具体包括:

S401、将单机的服务实例当前流量数据上报控制服务器。

可选的,单机可周期性的上报其服务实例当前流量数据。

S402、接收控制服务器根据各单机服务实例的当前流量数据,为单机的服务实例配置的全局流量阈值,和分布式集群的全局流量状态。

可选的,单机可通过预设的网络通信协议接收全局流量阈值和分布式集群的全局流量状态。而全局流量阈值的配置过程和分布式集群的全局流量状态的确定过程可参见上述实施例,在此不做具体限定。

S403、根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,进行业务请求的流量控制。

可选的,单机可根据接收到的全局流量阈值、以及全局流量阈值和/或单机中配置的单机流量阈值,规划流量控制策略,进而根据流量控制策略进行业务流量控制,其中,单机流量阈值为该单机所能承担的最大的业务请求流量,是由单机的性能决定的。

本申请实施例中,分布式集群中各单机可根据控制服务器根据为其配置的全局流量阈值,以及分布式集群的全局流量状态和自身的单机流量阈值,进行业务请求的流量控制,因为是在单机本地进行流量控制,保证了控制精度和效率,而且控制过程中结合了全局流量阈值,以及分布式集群的全局流量状态,由此整个流量控制过程兼顾了单机流量的精确控制和集群整体性控制,优化了分布式集群的业务流量控制效果。

图5是根据本申请实施例的分布式集群的流量控制方法的流程示意图,本实施例是在上述实施例的基础上进行优化,参见图5,分布式集群的流量控制方法具体如下:

S501、将单机的服务实例当前流量数据上报控制服务器。

S502、接收控制服务器根据各单机服务实例的当前流量数据,为单机的服务实例配置的全局流量阈值,和分布式集群的全局流量状态。

S503、根据全局流量状态识别分布式集群的健康度,并根据健康度确定全局流量阈值的使用策略。

可选的,根据健康度确定全局流量阈值的使用策略包括:

如果健康度表示所述分布式集群不具有流量处理能力,则确定使用所述全局流量阈值。

S504、在使用策略为使用全局流量阈值时,则单机的服务实例判断当前流量是否超出全局流量阈值。

S505、若当前流量超出全局流量阈值,则对当前业务请求进行流量抑制处理。

S506、若当前流量未超出全局流量阈值,则根据单机流量阈值对业务请求进行流量控制。

本申请实施例中,在确定使用策略为使用全局流量阈值时,也即表明分布式集群当前处于不健康的状态,需要从全局角度判断是否需要控制业务流量,以保证分布式集群的整体的健康程度。

可选的,如果当前流量超出全局流量阈值,则需要对当前业务请求进行流量抑制处理。示例性的,若服务实例自定义了流量超限回调函数,则执行自定义的回调函数处理,回调函数可以做拒绝、降级等抑制处理,同时会触发平台发送短信、电话报警;若服务实例没有自定义流量超限回调函数,则直接进行流量拒绝,同时会触发平台发送短信、电话报警。

可选的,若当前流量未超出全局流量阈值,则根据单机流量阈值对业务请求进行流量控制。也即是判断当前流量数据是否大于单机流量阈值,若是,则直接进行流量拒绝处理,以便防止整个集群被拖垮;若否,则放行当前流量。

进一步的,全局流量阈值小于单机流量阈值,由此使得当前流量未超出全局流量阈值时,当前流量也必然小于单机流量阈值,因此不需要执行根据单机流量阈值对业务请求进行流量控制的操作,由此可简化流量控制的流程。

本申请实施例中,针对分布式集群处于不健康状态时,根据全局流量阈值和单机流量阈值控制流量,既可以避免集群被拖垮,也可以保证流量控制的效率。

图6是根据本申请实施例的分布式集群的流量控制方法的流程示意图,本实施例是在上述实施例的基础上进行优化,参见图6,分布式集群的流量控制方法具体如下:

S601、将单机的服务实例当前流量数据上报控制服务器。

S602、接收控制服务器根据各单机服务实例的当前流量数据,为单机的服务实例配置的全局流量阈值,和分布式集群的全局流量状态。

S603、根据全局流量状态识别分布式集群的健康度,并根据健康度确定全局流量阈值的使用策略。

可选的,根据健康度确定全局流量阈值的使用策略包括:如果健康度表示分布式集群具有流量处理能力,则确定不使用所述全局流量阈值。

S604、在使用策略为不使用全局流量阈值时,则单机的服务实例判断当前流量是否超出单机流量阈值。

S605、若当前流量超出单机流量阈值,则对当前业务请求进行流量抑制处理。

S606、若当前流量未超出单机流量阈值,则对当前业务请求进行业务处理。

本申请实施例中,在确定不使用策略为使用全局流量阈值时,也即表明分布式集群当前处于健康的状态,此时只需根据单机流量阈值进行流量控制即可。若当前流量超出单机流量阈值,则对当前业务请求进行流量抑制处理,示例性的,若服务实例自定义了流量超限回调函数,则执行自定义的回调函数处理,回调函数可以做拒绝、降级等抑制处理,同时会触发平台发送短信、电话报警;若服务实例没有自定义流量超限回调函数,则直接进行流量拒绝,同时会触发平台发送短信、电话报警。若当前流量未超出单机流量阈值,则对当前业务请求进行业务处理,也即放行当前流量。

本申请实施例中,在分布式集群处于健康状态时,单机服务实例只需将当前流量与单机流量阈值进行比较,并根据比较结果确定是否需要进行流量抑制,提升了流量控制的效率。

图7a是根据本申请实施例的误唤醒语料确定方法的流程示意图,本实施例是在上述实施例的基础上进行优化,参见图7a,分布式集群的流量控制方法具体如下:

S701、采用滑动窗口,在服务实例的已统计流量数据中,统计当前上报周期内的当前流量数据。

通过滑动窗口的方式,统计单机服务实例在不同时间段(即时间窗口)的流量情况,其中,时间段大小可以是预先设定好的。进而在服务实例的已统计流量数据中,确定当前上报周期内的当前流量数据。

S702、单机采用哈希负载均衡算法确定当前上报周期的上报时点,并在上报时点将当前流量数据上报给控制服务器。

本申请实施例中,为了避免各单机在同一时点上报当前周期流量数据,各单机采用哈希负载均衡算法确定当前上报周期的上报时点,并在上报时点将当前流量数据上报给控制服务器。

示例性的,参加图7b,其示出了一种Bucket环示意图,用于存储统计的流量数据,其中,数据0-10分别表示不同的连续时间段,在统计流量时,将不同段时间统计的流量数据添加到各数字对应的位置。上报周期可以预先设定,例如10个时间段为一个周期。在当前周期时,若单机A通过哈希负载均衡运算,结果为4,则表示单机A的上报时点为时间段4结束的时间点,并在该上报时点时,将时间段4之前的10个时间段统计的流量数据上报。

S703、接收控制服务器根据各单机服务实例的当前流量数据,为单机的服务实例配置的全局流量阈值,和分布式集群的全局流量状态。

S704、根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,进行业务请求的流量控制。

本申请实施例中,通过滑动窗口的方式,统计当前上报周期内的当前流量数据,并通过哈希负载均衡算法确定当前上报周期的上报时点,避免了各单机在同一时点上报,实现了负载均衡。

图8是根据本申请实施例的分布式集群的流量控制装置的结构示意图,本实施例可适用于通过分布式集群中的单机和控制服务器相互配合以控制分布式集群的业务流量的情况。本申请实施例中,分布式集群包括至少一个控制服务器和至少两个单机,每个单机配置有至少一个服务实例,而分布式集群的流量控制装置配置于分布式集群中的控制服务器,如图7所示,该装置具体包括:

单机流量数据获取模块801,用于获取多个单机中各自服务实例的当前流量数据;

配置模块802,用于根据各单机服务实例的当前流量数据,为各单机的服务实例配置全局流量阈值,并确定分布式集群的全局流量状态,以指示各单机的服务实例,根据全局流量状态、以及全局流量阈值和/或单机中配置的单机流量阈值,进行业务请求的流量控制。

在上述实施例的基础上,可选的,全局流量状态用于指示分布式集群的健康度,以使单机的服务实例根据所述全局流量状态识别所述分布式集群的健康度,并根据所述健康度确定所述全局流量阈值的使用策略。

在上述实施例的基础上,可选的,根据所述健康度确定所述全局流量阈值的使用策略包括:

如果健康度表示分布式集群具有流量处理能力,则确定不使用全局流量阈值;

如果健康度表示分布式集群不具有流量处理能力,则确定使用全局流量阈值。

在上述实施例的基础上,可选的,全局流量阈值小于单机流量阈值。

在上述实施例的基础上,可选的,配置模块包括:

单机流量分布确定单元,用于根据各单机服务实例的当前流量数据确定服务实例的流量在各单机服务实例中的实时分布状态;

流量阈值配置单元,用于为各单机服务实例配置与实时分布状态匹配的全局流量阈值。

在上述实施例的基础上,可选的,流量阈值配置单元还用于:

根据用户对服务实例所对应业务服务配置的总申报流量和各单机的处理能力,为各单机服务实例配置与实时分布状态匹配的全局流量阈值。

在上述实施例的基础上,可选的,装置还包括:

用户申报数据获取模块,用于通过网页或客户端形式的流控管理平台,获取用户为业务服务配置的申报流量。

在上述实施例的基础上,可选的,当前流量数据为单机服务实例接收到的业务流量。

本申请实施例提供的分布式集群的流量控制的装置可执行本申请任意实施例提供的分布式集群的流量控制的方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本申请任意方法实施例中的描述。

图9是根据本申请实施例的分布式集群的流量控制装置的结构示意图,本实施例可适用于通过分布式集群中的单机和控制服务器相互配合以控制分布式集群的业务流量的情况。本申请实施例中,分布式集群包括至少一个控制服务器和至少两个单机,每个单机配置有至少一个服务实例,而分布式集群的流量控制装置配置于分布式集群中的单击,如图9所示,该装置具体包括:

流量数据上报模块901,用于将单机的服务实例当前流量数据上报控制服务器;

配置数据接收模块902,用于接收所述控制服务器根据各单机服务实例的当前流量数据,为单机的服务实例配置的全局流量阈值,和所述分布式集群的全局流量状态;

流量控制模块903,用于根据所述全局流量状态、以及所述全局流量阈值和/或所述单机中配置的单机流量阈值,进行业务请求的流量控制。

在上述实施例的基础上,可选的,流量控制模块包括:

策略确定单元,用于根据所述全局流量状态识别所述分布式集群的健康度,并根据所述健康度确定所述全局流量阈值的使用策略;

控制单元,用于根据所述单机流量阈值以及所述全局流量阈值的使用策略来进行业务请求的流量控制。

在上述实施例的基础上,可选的,控制单元还用于:

在使用策略为使用所述全局流量阈值时,则单机的服务实例判断当前流量是否超出所述全局流量阈值;

若当前流量超出所述全局流量阈值,则对当前业务请求进行流量抑制处理;

若当前流量未超出所述全局流量阈值,则根据单机流量阈值对业务请求进行流量控制。

在上述实施例的基础上,可选的,控制单元还用于:

在使用策略为不使用所述全局流量阈值时,则判断当前流量是否超出所述单机流量阈值;

若当前流量超出所述单机流量阈值,则对当前业务请求进行流量抑制处理;

若当前流量未超出所述单机流量阈值,则对当前业务请求进行业务处理。

在上述实施例的基础上,可选的,流量数据上报模块用于:

采用滑动窗口,在服务实例的已统计流量数据中,统计当前上报周期内的当前流量数据;

采用哈希负载均衡算法确定当前上报周期的上报时点,并在上报时点将当前流量数据上报给控制服务器。

本申请实施例提供的分布式集群的流量控制的装置可执行本申请任意实施例提供的分布式集群的流量控制的方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本申请任意方法实施例中的描述。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图10所示,是根据本申请实施例的分布式集群的流量控制方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图10所示,该电子设备包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器1001为例。

存储器1002即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的分布式集群的流量控制方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的分布式集群的流量控制方法。

存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的分布式集群的流量控制方法对应的程序指令/模块。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的分布式集群的流量控制方法。

存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据实现分布式集群的流量控制方法的电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至实现分布式集群的流量控制方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

实现分布式集群的流量控制方法的电子设备还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,图10中以通过总线连接为例。

输入装置1003可接收输入的数字或字符信息,以及产生与实现分布式集群的流量控制方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。

根据本申请实施例的技术方案,兼顾了单机流量的精确控制和集群整体性控制,优化了分布式集群的业务流量控制效果。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

相关技术
  • 分布式集群的流量控制方法、装置、设备和存储介质
  • 一种流量控制方法及装置、分布式集群
技术分类

06120112407140