CN104753805A - 分布式流量控制方法、服务器和*** - Google Patents

分布式流量控制方法、服务器和*** Download PDF

Info

Publication number
CN104753805A
CN104753805A CN201310754752.2A CN201310754752A CN104753805A CN 104753805 A CN104753805 A CN 104753805A CN 201310754752 A CN201310754752 A CN 201310754752A CN 104753805 A CN104753805 A CN 104753805A
Authority
CN
China
Prior art keywords
cluster
rear end
flow
machine
bus
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.)
Granted
Application number
CN201310754752.2A
Other languages
English (en)
Other versions
CN104753805B (zh
Inventor
宋寅博
郭锐
麦茂识
牛志强
张劲松
程伟
刘浩然
江强
任波
周保军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310754752.2A priority Critical patent/CN104753805B/zh
Priority to PCT/CN2014/095765 priority patent/WO2015101309A1/en
Publication of CN104753805A publication Critical patent/CN104753805A/zh
Priority to US15/169,897 priority patent/US10447789B2/en
Application granted granted Critical
Publication of CN104753805B publication Critical patent/CN104753805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40032Details regarding a bus interface enhancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供了一种分布式流量控制方法,所述方法包括:接收总线集群上报的健康度数据;根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常;根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制;根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制。采用该方法,不易造成资源浪费从而能充分利用资源且不易出错。此外,还提供了另一种分布式流量控制方法以及分布式流量控制***和服务器。

Description

分布式流量控制方法、服务器和***
技术领域
本发明涉及网络流量控制技术,特别是涉及一种分布式流量控制方法、服务器和***。
背景技术
传统的流量控制方法通常是通过静态配置的经验阈值实现的,具体的,可通过静态配置的经验阈值,当机器的流量超过经验阈值时则限流。然而,传统的这种方法由于依赖于静态配置的经验阈值,对于分布式的流量控制,静态配置需要人工维护,且容易出错。此外,这种基于经验阈值实现流量控制的单一的流量控制方式,也会出现负载不均衡的情况,从而不能充分的利用资源。
发明内容
基于此,有必要针对上述技术问题,提供一种不易出错且不易造成资源浪费从而能充分利用资源的分布式流量控制方法、服务器和***。
一种分布式流量控制方法,所述方法包括:
接收总线集群上报的健康度数据;
根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常;
根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制;
根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制。
一种分布式流量控制方法,所述方法包括:
总线集群向管理端上报后端集群的健康度数据;
所述管理端根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常;
所述管理端根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制,将所述流量限制发送至所述总线集群;
所述总线集群根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制。
一种服务器,包括:
数据接收模块,用于接收总线集群上报的健康度数据;
健康度判断模块,用于根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常;
流量限制调整模块,用于根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制;
流量控制模块,用于根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制。
一种分布式流量控制***,所述***包括:
总线集群,用于向管理端上报后端集群的健康度数据;
管理端,用于根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常;
所述管理端还用于根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制,将所述流量限制发送至所述总线集群;
所述总线集群还用于根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制。
上述分布式流量控制方法、服务器和***,根据接收到的总线集群上报的健康度数据判断后端集群是否缓慢或异常,根据后端集群缓慢或异常的判断结果调整总线集群中的机器的流量限制,使得总线集群中的机器的流量限制可以根据后端集群的健康状况进行自动调整,因此总线集群中的机器的流量限制是动态可变的且适应于后端集群的健康状况,这种自动根据后端集群健康状况进行流量控制的方式,能够有效避免负载不均衡的情况,不易造成资源浪费从而能充分利用资源。并且由于无需对每台机器的流量静态配置经验阈值,从而不易出错。
附图说明
图1为一个实施例中分布式流量控制方法的应用场景图;
图2为一个实施例中分布式流量控制方法的流程示意图;
图3为一个实施例中调整机器流量上限的流程示意图;
图4为一个实施例中模拟压测的流程示意图;
图5为另一个实施例中分布式流量控制方法的流程示意图;
图6为另一个实施例中调整机器的流量上限的流程示意图;
图7为另一个实施例中模拟压测的流程示意图;
图8为一个实施例中服务器的结构示意图;
图9为一个实施例中流量限制调整模块的结构示意图;
图10为另一个实施例中服务器的结构示意图;
图11为另一个实施例中模拟压测模块的结构示意图;
图12为一个实施例中分布式流量控制***的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
本发明各实施例所提供的分布式流量控制方法,可应用于如图1所示的***中。请参见图1,总线集群也可称为服务总线,是指SOA(Service-orientedarchitecture,面向服务的体系结构)中的总线。前端***的请求经总线集群路由分发到不同的后端集群中进行处理,总线集群收到后端集群相应模块的响应后,返回至前端***。总线集群使得前端***不需要关心后端集群用的具体通讯协议和部署位置,其主要功能是对外提供一个统一的总线通讯协议,前端***只需要调用总线即可。总线集群呈分布式部署,由若干台机器(总线节点)组成的集群组成,图1中只示出了2个总线节点,但可以理解,总线集群中的机器数量不受此限制。
管理端与总线集***互,用于管理总线集群中的机器的流量限制数据,管理端可将流量限制数据下发至总线集群,由总线集群中的机器根据对应的流量限制数据控制自身流量。总线集群可统计后端集群的健康度数据,并将后端集群的健康度数据上报给管理端,从而使得管理端可根据后端集群的健康度数据来生成不同的流量限制数据。其中,管理端可为与总线集群部署在同一机房或者部署在不同地点的服务器。
如图2所示,在一个实施例中,提供了一种分布式流量控制方法,该方法以应用于图1所示的管理端中进行举例说明,包括:
步骤202,接收总线集群上报的健康度数据。
健康度数据是指能反映后端集群的健康状况的数据。在一个实施例中,总线集群可从接收到的请求串中识别出多个业务维度,从而可将针对同一业务维度的后端集群的健康度数据进行整合上报。其中,业务维度是指针对某一业务的某类业务请求。比如,针对快捷支付这一业务,则有银行、具体接口等多种维度,不同的业务维度所调用的后端集群可能不同。
进一步的,总线集群可每隔固定周期(上报周期)上报一次后端集群的健康度数据,该上报周期优选可为1分钟。
步骤204,根据第一周期内的健康度数据判断后端集群是否缓慢或异常。
后端集群的健康度数据包括耗时类数据和处理结果类数据,其中耗时类数据用于判断后端集群是否缓慢,处理结果类数据用于判断后端集群是否异常。
步骤206,根据后端集群缓慢或异常的判断结果调整总线集群中的机器在第二周期内的流量限制。
第二周期为第一周期的下一周期,因此本实施例可实现根据前一周期的健康度数据对当前周期的流量进行控制。
调整总线集群中的机器在第二周期内的流量限制优选为调整机器对应的流量上限,流量上限是指该机器对应的流量应不能高于其流量上限。根据前一周期的后端集群的健康度数据来调整总线集群中的机器在当前周期内的流量上限,能够实现合理的流量分布。
步骤208,根据调整的流量限制在第二周期内对总线集群中的机器的流量进行控制。
本实施例中,对于总线集群中的每台机器,都可计算得到对应的流量上限,在计算得到总线集群中的机器在第二周期内的流量上限后,则可将与机器对应的流量上限发送至总线集群,总线集群中的机器则可将其流量限制在对应的流量上限内。
由于总线集群中的机器的流量限制可以根据后端集群的健康状况进行自动调整,因此总线集群中的机器的流量限制是动态可变的且适应于后端集群的健康状况,这种自动根据后端集群健康状况进行流量控制的方式,能够有效避免负载不均衡的情况,不易造成资源浪费从而能充分利用资源。并且由于无需对每台机器的流量静态配置经验阈值,从而不易出错。
在一个实施例中,如图3所示,根据后端集群缓慢或异常的判断结果调整总线集群中的机器在第二周期内的流量上限的过程包括:
步骤302,判断后端集群缓慢或异常,若是,则进入步骤304,否则进入步骤306。
步骤304,下调后端集群对应的支撑容量。
步骤306,上调后端集群对应的支撑容量。
后端集群对应的支撑容量,是指该后端集群针对某一业务维度能够支撑的容量。
在一个实施例中,步骤304为:将后端集群对应的支撑容量下调支撑容量初始值的预设百分比。步骤306为:将后端集群对应的支撑容量上调支撑容量初始值的预设百分比。比如,当前后端集群对应的支撑容量为C1,支撑容量初始值为C0,预设百分比z%,在判断到后端集群缓慢或异常时,则下调后端集群对应的支撑容量为C1-C0*z%。
在一个实施例中,在每次判断到后端集群缓慢或异常时,则进行一次下调,直至到达支撑容量的下限。优选的,该下限为n笔请求/秒,其中n为总线集群中的机器数量。在一个实施例中,在每次判断到后端集群未出现缓慢或异常时,则上调一次后端集群对应的支撑容量,直至达到支撑容量的上限(即最大值)。上限可优选为支撑容量初始值(即,初始设置的后端集群对应的支撑容量的值)。
在另一个实施例中,在每次上调一次后端集群对应的支撑容量后,判断这次上调后的后端集群对应的支撑容量是否达到支撑容量的上限(即最大值),如果达到,则停止上调,并将后端集群对应的支撑容量设置为支撑容量的上限。该上限优选可为支撑容量的初始值。
步骤308,根据调整后的支撑容量确定总线集群中的机器在第二周期内的流量上限。
在一个实施例中,确定总线集群中的机器在第二周期内的流量上限为以下两者中的最大值:(1)机器在第一周期内的流量占机器总流量的比例与调整后的支撑容量的乘积;(2)调整后的支撑容量与机器数量的比值。
例如,可按照如下公式计算总线集群中的某台机器在第二周期内的流量上限:Max(C*q/Q,C/n)。其中,Max表示取两者中的最大值,C为调整后的后端集群对应的支撑容量,q为该台机器在第一周期内的流量,Q为在第一周期内总线集群中的所有机器的总流量,n为总线集群中的机器数量。
通过确定总线集群中的机器在第二周期内的流量上限为上述两个数值中最大值,使得机器的流量上限具备一定的下限值,也就是说,机器的流量上限应该最低不能低于该下限值。对机器的流量上限设置下限值,能够避免单台总线机器被限死导致误拒,C/n是按照机器均分后的流量,可以为合理的流量上限的下限值。但总线集群中的机器应不能满足于均分,因为在一个上报周期内,是可能存在流量不均的情形,需要根据上一个周期的流量分布,来允许部分机器享有更多的流量,因此如果C*q/Q值更大,就取该值。
进一步的,得到总线集群中的机器在第二周期内的流量上限后,可将流量上限发送至总线集群,总线集群中的机器则可在第二周期内将其流量控制在对应的流量上限内。
在一个实施例中,步骤108包括:获取在第二周期内总线集群中的机器总流量,如果机器总流量超过后端集群的支撑容量的预设倍数,则告警。
具体的,总线集群统计在一个上报周期内总线集群中的机器总流量,如果该机器总流量超过了对应业务维度的后端集群的支撑容量的预设倍数时,则生成告警信息,并将告警信息发送至管理端。该预设倍数优选为1倍。本实施例中,当总线集群在一个上报周期内的机器总流量超过后端集群的支撑容量时,则后端集群的健康状况将会下降,管理端根据总线集群上报的健康度数据将判断到后端集群出现缓慢或异常,从而可以对下一周期内总线集群中的机器的流量上限进行调整,使得总线集群中的机器的流量自然被下调。
在一个实施例中,健康度数据包括后端集群的平均耗时、耗时分布数据和超时率;则根据第一周期内的健康度数据判断后端集群是否缓慢或异常的步骤,包括:判断第一周期内该后端集群是否满足以下条件中的任意一者或者任意两者以上的组合:(1)后端集群的平均耗时达到第一阈值;(2)后端集群的耗时分布数据中,每个耗时区间中的请求比例未在预设范围内;(3)后端集群的超时率达到第二阈值;若判断为是,则该后端集群缓慢。
平均耗时、耗时分布数据和超时率都为耗时类数据。其中:平均耗时是指在一个上报周期内,后端集群处理一条请求平均所耗费的时间。耗时分布数据,是指预先设置多个耗时区间,如包括极快(耗时0~100ms)、较快(耗时100~500ms)、正常(耗时500ms~2s)和缓慢(耗时大于2s)等区间,统计在一个上报周期内,后端集群处理的请求中,分别落在每个耗时区间中的请求比例,如落在极快的耗时区间中的请求比例为55%。预先可设置一定范围,如果每个耗时区间中的请求比例不在该预设范围内,则后端集群缓慢。比如,设置极快的耗时区间中的请求比例应该至少占50%以上,或者缓慢的耗时区间应最多占20%等等。超时率是指在一个上报周期内,超时的请求占所有请求数的比率。可设置超时阈值,当一个请求发送至后端集群后,如果总线集群等待该超时阈值后仍未收到后端集群返回的结果,则认为该请求超时。其中,超时阈值可优选为取以下两者中的最大值:(1)后端集群在最近预设时间段内中最慢的一天的每笔请求的平均耗时;(2)预设的经验下限值。
进一步的,可设置当判断到在第一周期内后端集群满足以上三个条件中的任意一个或者任意两个以上的组合,则认为该后端集群出现缓慢,则应该根据第一周期内的流量数据(如第一周期内总线集群中的机器总流量、单台机器的流量等)来控制调整第二周期内的流量限制。第二周期即为第一周期的下一个周期。
进一步的,在本实施例或另一个实施例中,健康度数据还可包括后端集群的成功率和错误率;则根据第一周期内的健康度数据判断后端集群是否出现缓慢或异常的步骤,包括:判断第一周期内后端集群是否满足以下提哦啊件的任意一者或者两者的组合:(1)后端集群的成功率低于第三阈值;(2)后端集群的错误率达到第四阈值;若判断为是,则后端集群异常。
成功率和错误率都是处理结果类数据。其中:成功率是指在一个上报周期内,后端集群处理请求成功的请求数占所有请求数的比例。错误率是指后端集群返回错误的请求数占所有请求数的比例。总线集群能够通过识别前缀或通过黑名单的方式从后端集群返回的错误代码识别出***错误(即,非业务原因导致的报错),总线集群在一个上报周期内统计出的后端集群返回***错误占所有请求的比例即为错误率。可设置当判断到在第一周期内后端集群满足以上两个条件中的任意一者或两者的组合,则认为后端集群出现异常,则应该根据第一周期内的流量数据。
在一个实施例中,本发明所提供的分布式流量控制方法,还能实现模拟压测。具体的,如图4所示,模拟压测的过程包括:
步骤402,接收管理员输入的作为压测目标的后端集群和对该压测目标进行模拟压测的指令。
本实施例中,管理员可通过管理端的配置界面将某一个业务维度设置为压测模式,且指定作为压测目标的后端集群。
步骤404,向总线集群发送短周期上报指令,接收总线集群按短周期上报的健康度数据。
所述短周期是指远小于正常的上报周期的一个周期,总线集群在接收到短周期上报指令后,该短周期上报指令可指定应持续的短周期的个数,总线集群则按该短周期上报后端集群的健康度数据。
步骤406,按短周期对总线集群中的机器的流量进行控制,且在每个短周期内将压测目标外的其它后端集群的请求量上限降低第一预设值。
管理端接收到总线集群按短周期上报的健康度数据后,可按照上述各实施例提供的分布式流量控制方法,根据总线集群按短周期上报的健康度数据对总线集群中的机器在一个短周期内的流量进行控制,并这样持续控制预设数量个短周期。并且,在每个短周期内将压测目标外的其它后端集群的请求量上限降低第一预设值,这样逐渐会有更多的请求分发到作为压测目标的后端集群。其中,第一预设值优选为压测目标外的其它后端集群在降低请求量前的请求量上限与短周期持续个数的比值。
步骤408,当满足一定条件则停止模拟压测,恢复模拟压测前的流量限制数据,并向总线集群发送正常周期上报指令。
满足一定条件是指满足以下条件中的任意一者或者两者的组合:(1)压测目标外的其它后端集群的请求量上限降低至第二预设值;(2)压测目标出现缓慢或异常。第二预设值优选可为0笔/秒。当满足这两个条件中的任意一者或两者的组合时,则认为压测目标已到达极限,可停止模拟压测。管理端将模拟压测前的流量限制数据发送至总线集群,该流量限制数据包括模拟压测前后端集群对应的支撑容量、每台机器对应的流量上限等。管理端向总线集群发送正常周期上报指令,总线集群则按照模拟压测前的上报周期继续上报在一个上报周期内的后端集群的健康度数据,继续按照之前正常的上报周期进行流量控制。
本实施例中,在对某个业务维度进行模拟压测时,可选择对应的后端集群,管理员只需要通过配置界面输入指令即可实现,且模拟压测的过程是通过对真实的业务请求进行切量,通过模拟压测,便于获知后端集群中每个节点实际的处理能力,且模拟压测在达到一定条件时自动停止,不会影响实际业务的处理请求。
结合图1,对某一业务维度(即某类业务请求),与总线集群连接的后端***可提供完全一样的功能,可按照不同的部署特征(比如机房、专线等)而形成一个集群(图1中只示出2个后端集群,且1个后端集群中只示出了2个节点,但可以理解,后端集群的数量和后端集群中的节点数量并不受该图限制),这些功能一样但部署特征不同的后端集群,也称为同种异部署的后端集群。根据上述各实施例提供的分布式流量控制方法,总线集群可对同种异部署的后端集群分别进行健康度统计并上报给管理端,管理端根据总线集群上报的健康度数据调整总线集群中的机器对应的流量限制,并将流量限制数据发送至总线集群,使得总线集群可以根据流量限制数据控制对后端集群的流量。从前端***的一个请求到达总线集群,并由总线集群将该请求路由及分发到同一业务维度下的多个后端集群中。若某一个后端集群到达流控阈值(健康度下降),则总线集群不会拒绝请求,而是将请求路由到其它后端集群。因此,如果同一业务维度下的多个后端集群中某个后端集群健康度下降,管理端会调整总线集群中的机器的流量限制,使得总线集群能够将请求量切换到其它更为健康的后端集群上,从而实现柔性的容灾功能。相对于传统的人工切换或者完全切换的容灾切换技术,本发明实施例所提供的分布式流量控制方法,能够通过减量的方式来缓解性能恶化,促进后端集群健康度的恢复,使得流量控制可以用于容灾,且能提高整个***的性能。
如图5所示,在一个实施例中,提供了另一种分布式流量控制方法,该方法以应用于图1所示的***中进行举例说明,该方法包括:
步骤502,总线集群向管理端上报后端集群的健康度数据。
具体的,总线集群可获取针对同一业务维度的后端集群的健康度数据,按照预先设置的上报周期整合上报针对同一业务维度的后端集群的健康度数据。该上报周期优选可为1分钟。
步骤504,管理端根据第一周期内的健康度数据判断后端集群是否缓慢或异常。
后端集群的健康度数据包括耗时类数据和处理结果类数据,其中耗时类数据用于判断后端集群是否缓慢,处理结果类数据用于判断后端集群是否异常。
步骤506,管理端根据后端集群缓慢或异常的判断结果调整总线集群中的机器在第二周期内的流量限制,将流量限制发送至总线集群。
第二周期为第一周期的下一周期,因此本实施例可实现根据前一周期的健康度数据对当前周期的流量进行控制。
在一个实施例中,步骤506中,管理端根据后端集群缓慢或异常的判断结果调整总线集群中的机器在第二周期内的流量上限。
步骤508,总线集群根据接收到的流量限制在第二周期内对总线集群中的机器的流量进行控制。
本实施例中,管理端根据第一周期内的健康度数据调整总线集群中的每台机器对应的在第二周期内的流量限制,则总线集群中的机器可按照其对应的流量限制进行流量控制。
由于总线集群中的机器的流量限制可以根据后端集群的健康状况进行自动调整,因此总线集群中的机器的流量限制是动态可变的且适应于后端集群的健康状况,这种自动根据后端集群健康状况进行流量控制的方式,能够有效避免负载不均衡的情况,不易造成资源浪费从而能充分利用资源。并且由于无需对每台机器的流量静态配置经验阈值,从而不易出错。
在一个实施例中,管理端根据后端集群缓慢或异常的判断结果调整的是后端机器的支撑容量,则管理端根据调整后的支撑容量来确定总线集群中的机器在第二周期内的流量上限。
具体的,在一个实施例中,如图6所示,管理端根据判断结果调整总线集群中的机器在第二周期内的流量上限的过程包括:
步骤602,管理端判断后端集群缓慢或异常,若是,则进入步骤604,否则进入步骤606。
步骤604,管理端下调后端集群对应的支撑容量。
步骤606,管理端上调后端集群对应的支撑容量。
在一个实施例中,步骤604中,管理端将后端集群对应的支撑容量下调支撑容量初始值的预设百分比。步骤606中,管理端将后端集群对应的支撑容量上调支撑容量初始值的预设百分比。其中,预设百分比可预先设置。管理端每次判断到后端集群缓慢或异常,则进行一次下调,直至到达支撑容量的下限。优选的,该下限为n笔请求/秒,其中n为总线集群中的机器数量。管理端每次判断到后端集群未出现缓慢或异常,则进行一次上调,直至达到支撑容量的上限,该上限可优选为支撑容量初始值。
步骤608,管理端根据调整后的支撑容量确定总线集群中的机器在第二周期内的流量上限。
在一个实施例中,管理端确定总线集群中的机器在第二周期内的流量上限为以下两者中的最大值:(1)机器在第一周期内的流量占机器总流量的比例与调整后的支撑容量的乘积;(2)调整后的支撑容量与机器数量的比值。
例如,管理端可按照如下公式计算总线集群中的某台机器在第二周期内的流量上限:Max(C*q/Q,C/n)。其中,Max表示取两者中的最大值,C为调整后的后端集群对应的支撑容量,q为该台机器在第一周期内的流量,Q为在第一周期内总线集群中的所有机器的总流量,n为总线集群中的机器数量。
进一步的,管理端得到总线集群中的机器在第二周期内的流量上限后,可将流量上限与机器的对应关系发送至总线集群,则总线集群中的机器可在第二周期内将其流量控制在对应的流量上限内。
在一个实施例中,总线集群根据流量限制在第二周期内对总线集群中的机器的流量进行控制的步骤,包括:总线集群获取在第二周期内总线集群中的机器总流量;如果该机器总流量超过后端集群的支撑容量的预设倍数,则向管理端发送告警信息。
在一个实施例中,健康度数据包括后端集群的平均耗时、耗时分布数据和超时率;则管理端根据第一周期内的健康度数据判断后端集群是否缓慢或异常的步骤,包括:判断第一周期内该后端集群是否满足以下条件中的任意一者或者任意两者以上的组合:(1)后端集群的平均耗时达到第一阈值;(2)后端集群的耗时分布数据中,每个耗时区间中的请求比例未在预设范围内;(3)后端集群的超时率达到第二阈值;若判断为是,则该后端集群缓慢。
在一个实施例中,健康度数据还可包括后端集群的成功率和错误率;则管理端根据第一周期内的健康度数据判断后端集群是否出现缓慢或异常的步骤,包括:判断第一周期内后端集群是否满足以下条件的任意一者或者两者的组合:(1)后端集群的成功率低于第三阈值;(2)后端集群的错误率达到第四阈值;若判断为是,则后端集群异常。
在一个实施例中,还能通过管理端和总线集群实现模拟压测,具体的,如图7所示,模拟压测的过程包括:
步骤702,管理端接收管理员输入的作为压测目标的后端集群和对压测目标进行模拟压测的指令。
步骤704,管理端向总线集群发送短周期上报指令。
步骤706,总线集群按短周期统计压测目标的健康度数据。
步骤708,总线集群按周期向管理端上报压测目标的健康度数据。
步骤710,管理端根据总线集群按短周期上报的健康度数据,生成流量限制数据。
步骤712,管理端向总线集群发送流量限制数据。
步骤714,总线集群根据流量限制数据按短周期对总线集群中的机器的流量进行控制,且在每个短周期内将压测目标外的其它后端集群的请求量上限降低第一预设值。
步骤716,当满足以下条件中的任意一者或者两者的组合时,管理端停止模拟压测:(1)压测目标的其它后端集群的请求量上限降低至第二预设值;(2)压测目标出现缓慢或异常。
步骤718,管理端向总线集群发送正常周期上报指令和模拟压测前的流量限制数据。
步骤720,总线集群按照模拟压测之前正常的上报周期进行流量控制。
如图8所示,在一个实施例中,提供了一种服务器800,包括:
数据接收模块802,用于接收总线集群上报的健康度数据。
健康度判断模块804,用于根据第一周期内的健康度数据判断后端集群是否缓慢或异常。
流量限制调整模块806,用于根据后端集群缓慢或异常的判断结果调整总线集群中的机器在第二周期内的流量限制。
流量控制模块808,用于根据流量限制在第二周期内对总线集群中的机器的流量进行控制。
本实施例中,数据接收模块802用于接收总线集群按上报周期整合上报的针对同一业务维度的后端集群的健康度数据。其中,第二周期是第一周期的上一周期,可实现根据前一周期的健康度数据对当前周期的流量进行控制。
在一个实施例中,流量限制调整模块806用于根据后端集群缓慢或异常的判断结果调整总线集群中的机器在第二周期内的流量上限。
具体的,在一个实施例中,如9所示,流量限制调整模块806包括:
支撑容量调整模块816,用于根据后端集群缓慢或异常的判断结果调整后端集群的支撑容量。
在一个实施例中,支撑容量调整模块816用于若后端集群缓慢或异常,则下调后端集群对应的支撑容量;若后端集群未出现缓慢或异常,则上调后端集群对应的支撑容量。
进一步的,在一个实施例中,支撑容量调整模块816用于将后端集群对应的支撑容量下调支撑容量初始值的预设百分比;将后端集群对应的支撑容量下调支撑容量初始值的预设百分比。
流量上限确定模块826,用于根据调整后的支撑容量确定总线集群中的机器在第二周期内的流量上限。
进一步的,在一个实施例中,流量上限确定模块826用于确定总线集群中的机器在第二周期内的流量上限为以下两者中的最大值:(1)机器在第一周期内的流量占机器总流量的比例与调整后的支撑容量的乘积;(2)调整后的支撑容量与机器数量的比值。
例如,流量上限确定模块826用于按照如下公式计算总线集群中的某台机器在第二周期内的流量上限:Max(C*q/Q,C/n)。其中,Max表示取两者中的最大值,C为调整后的后端集群对应的支撑容量,q为该台机器在第一周期内的流量,Q为在第一周期内总线集群中的所有机器的总流量,n为总线集群中的机器数量。
进一步的,流量控制模块808可用于得到总线集群中的机器在第二周期内的流量上限后,可将流量上限与机器的对应关系发送至总线集群,则总线集群中的机器可在第二周期内将其流量控制在对应的流量上限内。
在一个实施例中,流量控制模块808还用于获取在第二周期内总线集群中的机器总流量;如果该机器总流量超过后端集群的支撑容量的预设倍数,则告警。
在一个实施例中,健康度数据包括后端集群的平均耗时、耗时分布数据和超时率;则健康度判断模块804用于判断第一周期内该后端集群是否满足以下条件中的任意一者或者任意两者以上的组合,若判断为是,则判定后端集群缓慢:(1)后端集群的平均耗时达到第一阈值;(2)后端集群的耗时分布数据中,每个耗时区间中的请求比例未在预设范围内;(3)后端集群的超时率达到第二阈值。
在本实施例或另一实施例中,健康度数据还可包括后端集群的成功率和错误率;则健康度判断模块804用于判断第一周期内后端集群是否满足以下条件的任意一者或者两者的组合,若判断为是,则判定后端集群异常:(1)后端集群的成功率低于第三阈值;(2)后端集群的错误率达到第四阈值。
在一个实施例中,服务器800还包括模拟压测模块810,其中,如图10所示,模拟压测模块810包括:
指令接收模块811,用于接收管理员输入的作为压测目标的后端集群和对压测目标进行模拟压测的指令。
短周期内数据接收模块812,用于向总线集群发送短周期上报指令,接收总线集群按短周期上报的健康度数据。
短周期内流量控制模块813,用于按短周期对总线集群中的机器的流量进行控制,且在每个短周期内将压测目标外的其它后端集群的请求量上限降低第一预设值。
本实施例中,短周期内流量控制模块813用于据总线集群按短周期上报的健康度数据,生成流量限制数据,并向总线集群发送该流量限制数据,使得总线集群根据流量限制数据按短周期对总线集群中的机器的流量进行控制。
在一个实施例中,如图11所示,模拟压测模块810还包括:
模拟压测停止模块814,用于当满足以下条件中的任意一者或者两者的组合时,停止模拟压测,恢复模拟压测前的流量限制数据,并向总线集群发送正常周期上报指令:(1)压测目标外的其它后端集群的请求量上限降低至第二预设值;(2)压测目标出现缓慢或异常。
如图12所示,在一个实施例中,还提供了一种分布式流量控制***1200,该***包括:
总线集群1220,用于向管理端1240上报后端集群的健康度数据。
管理端1240,用于根据第一周期内的健康度数据判断后端集群是否缓慢或异常。
本实施例中,管理端1240还用于根据后端集群缓慢或异常的判断结果调整总线集群1220中的机器在第二周期内的流量限制,将流量限制发送至总线集群1220。
总线集群1220还用于根据接收到的流量限制在第二周期内对总线集群1220中的机器的流量进行控制。
在一个实施例中,管理端1240用于根据后端集群缓慢或异常的判断结果调整总线集群1220中的机器在第二周期内的流量上限。
进一步的,在一个实施例中,管理端1240用于根据该判断结果调整后端集群的支撑容量,根据调整后的支撑容量确定总线集群1220中的机器在第二周期内的流量上限。
进一步的,管理端1240用于若后端集群缓慢或异常,则下调后端集群对应的支撑容量;若后端集群未出现缓慢或异常,则上调后端集群对应的支撑容量。
进一步的,在一个实施例中,管理端1240用于将后端集群对应的支撑容量下调支撑容量初始值的预设百分比;将后端集群对应的支撑容量下调支撑容量初始值的预设百分比。
在一个实施例中,管理端1240用于确定总线集群1220中的机器在第二周期内的流量上限为以下两者中的最大值:(1)机器在第一周期内的流量占机器总流量的比例与调整后的支撑容量的乘积;(2)调整后的支撑容量与机器数量的比值。
具体的,管理端1240可用于按照如下公式计算总线集群1220中的某台机器在第二周期内的流量上限:Max(C*q/Q,C/n)。其中,Max表示取两者中的最大值,C为调整后的后端集群对应的支撑容量,q为该台机器在第一周期内的流量,Q为在第一周期内总线集群1220中的所有机器的总流量,n为总线集群1220中的机器数量。
在一个实施例中,管理端1240可用于得到总线集群1220中的机器在第二周期内的流量上限后,可将流量上限与机器的对应关系发送至总线集群1220,则总线集群1220中的机器可在第二周期内将其流量控制在对应的流量上限内。
在一个实施例中,总线集群1220还用于获取在第二周期内总线集群1220中的机器总流量;如果机器总流量超过后端集群的支撑容量的预设倍数,则向管理端1240发送告警信息。
在一个实施例中,健康度数据包括后端集群的平均耗时、耗时分布数据和超时率;则管理端1240用于判断第一周期内该后端集群是否满足以下条件中的任意一者或者任意两者以上的组合,若判断为是,则判定后端集群缓慢:(1)后端集群的平均耗时达到第一阈值;(2)后端集群的耗时分布数据中,每个耗时区间中的请求比例未在预设范围内;(3)后端集群的超时率达到第二阈值。
在本实施例或另一实施例中,健康度数据还可包括后端集群的成功率和错误率;则管理端1240还用于判断第一周期内后端集群是否满足以下条件的任意一者或者两者的组合,若判断为是,则判定后端集群异常:(1)后端集群的成功率低于第三阈值;(2)后端集群的错误率达到第四阈值。
在一个实施例中,管理端1240还用于接收管理员输入的作为压测目标的后端集群和对压测目标进行模拟压测的指令,向总线集群1220发送短周期上报指令。
总线集群1220还用于按短周期向管理1240上报压测目标的健康度数据。
管理端1240还用于根据总线集群1220按短周期上报的健康度数据,向总线集群1220发送流量限制数据。
总线集群1220还用于根据流量限制数据按短周期对总线集群1220中的机器的流量进行控制,且在每个短周期内将压测目标外的其它后端集群的请求量上限降低第一预设值。
进一步的,在一个实施例中,管理端1240还用于当满足以下条件中的任意一者或者两者的组合时,停止模拟压测,向总线集群1220发送正常周期上报指令和模拟压测前的流量限制数据:(1)压测目标外的其它后端集群的请求量上限降低至第二预设值;(2)压测目标出现缓慢或异常。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机***的存储介质中,并被该计算机***中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (44)

1.一种分布式流量控制方法,所述方法包括:
接收总线集群上报的健康度数据;
根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常;
根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制;
根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制。
2.根据权利要求1所述的方法,其特征在于,所述根据后端集群缓慢或异常的判断结果调整总线集群中的机器在第二周期内的流量限制的步骤,包括:
根据所述判断结果调整所述总线集群中的机器在第二周期内的流量上限。
3.根据权利要求2所述的方法,其特征在于,所述根据所述判断结果调整总线集群中的机器在第二周期内的流量上限的步骤,包括:
根据所述判断结果调整所述后端集群的支撑容量;
根据调整后的所述支撑容量确定所述总线集群中的机器在所述第二周期内的流量上限。
4.根据权利要求3所述的方法,其特征在于,所述根据所述调整所述后端集群的支撑容量的步骤,包括:
若所述后端集群缓慢或异常,则下调所述后端集群对应的支撑容量;
若所述后端集群未出现缓慢或异常,则上调所述后端集群对应的支撑容量。
5.根据权利要求4所述的方法,其特征在于,所述下调后端集群对应的支撑容量的步骤为:将所述后端集群对应的支撑容量下调支撑容量初始值的预设百分比;
所述上调后端集群对应的支撑容量的步骤为:将所述后端集群对应的支撑容量上调所述支撑容量初始值的预设百分比。
6.根据权利要求3所述的方法,其特征在于,所述根据调整后的所述支撑容量确定所述总线集群中的机器在所述第二周期内的流量上限的步骤,包括:
确定所述总线集群中的机器在所述第二周期内的流量上限为以下两者中的最大值:
所述机器在所述第一周期内的流量占机器总流量的比例与所述调整后的支撑容量的乘积;
所述调整后的支撑容量与机器数量的比值。
7.根据权利要求1所述的方法,其特征在于,所述根据流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制的步骤,包括:
获取在所述第二周期内所述总线集群中的机器总流量;
如果所述机器总流量超过所述后端集群的支撑容量的预设倍数,则告警。
8.根据权利要求1所述的方法,其特征在于,所述健康度数据包括所述后端集群的平均耗时、耗时分布数据和超时率;所述根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常的步骤,包括:
判断所述第一周期内所述后端集群是否满足以下条件中的任意一者或者任意两者以上的组合:
所述后端集群的平均耗时达到第一阈值;
所述后端集群的耗时分布数据中,每个耗时区间中的请求比例未在预设范围内;
所述后端集群的超时率达到第二阈值;
若判断为是,则所述后端集群缓慢。
9.根据权利要求1所述的方法,其特征在于,所述健康度数据包括所述后端集群的成功率和错误率;所述根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常的步骤,包括:
判断所述第一周期内所述后端集群是否满足以下条件中的任意一者或者两者的组合:
所述后端集群的成功率低于第三阈值;
所述后端集群的错误率达到第四阈值;
若判断为是,则所述后端集群异常。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收管理员输入的作为压测目标的后端集群和对所述压测目标进行模拟压测的指令;
向所述总线集群发送短周期上报指令,接收所述总线集群按短周期上报的健康度数据;
按所述短周期对所述总线集群中的机器的流量进行控制,且在每个短周期内将所述压测目标外的其它后端集群的请求量上限降低第一预设值。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当满足以下条件中的任意一者或者两者的组合时,停止模拟压测,恢复模拟压测前的流量限制数据,并向所述总线集群发送正常周期上报指令:
所述压测目标外的其它后端集群的请求量上限降低至第二预设值;
所述压测目标出现缓慢或异常。
12.一种分布式流量控制方法,所述方法包括:
总线集群向管理端上报后端集群的健康度数据;
所述管理端根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常;
所述管理端根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制,将所述流量限制发送至所述总线集群;
所述总线集群根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制。
13.根据权利要求12所述的方法,其特征在于,所述管理端根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制的步骤,包括:
所述管理端根据所述判断结果调整所述总线集群中的机器在所述第二周期内的流量上限。
14.根据权利要求13所述的方法,其特征在于,所述管理端根据所述判断结果调整所述总线集群中的机器在所述第二周期内的流量上限的步骤,包括:
所述管理端根据所述判断结果调整所述后端集群的支撑容量;
所述管理端根据调整后的所述支撑容量确定所述总线集群中的机器在所述第二周期内的流量上限。
15.根据权利要求14所述的方法,其特征在于,所述管理端根据所述判断结果调整所述后端集群中的支撑容量的步骤,包括:
若所述后端集群缓慢或异常,则下调所述后端集群对应的支撑容量;
若所述后端集群未出现缓慢或异常,则上调所述后端集群对应的支撑容量。
16.根据权利要求15所述的方法,其特征在于,所述下调后端集群对应的支撑容量的步骤为:将所述后端集群对应的支撑容量下调支撑容量初始值的预设百分比;
所述上调后端集群对应的支撑容量的步骤为:将所述后端集群对应的支撑容量上调所述支撑容量初始值的预设百分比。
17.根据权利要求14所述的方法,其特征在于,所述管理端根据调整后的所述支撑容量确定所述总线集群中的机器在所述第二周期内的流量上限的步骤,包括:
所述管理端确定所述总线集群中的机器在所述第二周期内的流量上限为以下两者中的最大值:
所述机器在所述第一周期内的流量占机器总流量的比例与所述调整后的支撑容量的乘积;
所述调整后的支撑容量与机器数量的比值。
18.根据权利要求12所述的方法,其特征在于,所述总线集群根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制的步骤,包括:
所述总线集群获取在所述第二周期内所述总线集群中的机器总流量;
如果所述机器总流量超过所述后端集群的支撑容量的预设倍数,则向所述管理端发送告警信息。
19.根据权利要求12所述的方法,其特征在于,所述健康度数据包括所述后端集群的平均耗时、耗时分布数据和超时率;所述管理端根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常的步骤,包括:
判断所述第一周期内所述后端集群是否满足以下条件中的任意一者或者任意两者以上的组合:
所述后端集群的平均耗时达到第一阈值;
所述后端集群的耗时分布数据中,每个耗时区间中的请求比例未在预设范围内;
所述后端集群的超时率达到第二阈值;
若判断为是,则所述管理端判定所述后端集群缓慢。
20.根据权利要求12所述的方法,其特征在于,所述健康度数据包括所述后端集群的成功率和错误率;所述管理端根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常的步骤,包括:
判断所述第一周期内所述后端集群是否满足以下条件中的任意一者或者两者的组合:
所述后端集群的成功率低于第三阈值;
所述后端集群的错误率达到第四阈值;
若判断为是,则所述管理端判定所述后端集群异常。
21.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述管理端接收管理员输入的作为压测目标的后端集群和对所述压测目标进行模拟压测的指令;
所述管理端向所述总线集群发送短周期上报指令;
所述总线集群按短周期向所述管理端上报所述压测目标的健康度数据;
所述管理端根据所述总线集群按短周期上报的健康度数据,向所述总线集群发送流量限制数据;
所述总线集群根据所述流量限制数据按所述短周期对所述总线集群中的机器的流量进行控制,且在每个所述短周期内将所述压测目标外的其它后端集群的请求量上限降低第一预设值。
22.根据权利要求22所述的方法,其特征在于,所述方法还包括:
当满足以下条件中的任意一者或者两者的组合时,所述管理端停止模拟压测,向所述总线集群发送正常周期上报指令和模拟压测前的流量限制数据:
所述压测目标外的其它后端集群的请求量上限降低至第二预设值;
所述压测目标出现缓慢或异常。
23.一种服务器,其特征在于,包括:
数据接收模块,用于接收总线集群上报的健康度数据;
健康度判断模块,用于根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常;
流量限制调整模块,用于根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制;
流量控制模块,用于根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制。
24.根据权利要求23所述的服务器,其特征在于,所述流量限制调整模块用于根据所述判断结果调整所述总线集群中的机器在第二周期内的流量上限。
25.根据权利要求24所述的服务器,其特征在于,所述流量限制调整模块包括:
支撑容量调整模块,用于根据所述判断结果调整所述后端集群的支撑容量;
流量上限确定模块,用于根据调整后的所述支撑容量确定所述总线集群中的机器在所述第二周期内的流量上限。
26.根据权利要求24所述的服务器,其特征在于,所述支撑容量调整模块用于若所述后端集群缓慢或异常,则下调所述后端集群对应的支撑容量;若所述后端集群未出现缓慢或异常,则上调所述后端集群对应的支撑容量。
27.根据权利要求26所述的服务器,其特征在于,所述支撑容量调整模块用于将所述后端集群对应的支撑容量下调支撑容量初始值的预设百分比;将所述后端集群对应的支撑容量上调所述支撑容量初始值的预设百分比。
28.根据权利要求25所述的服务器,其特征在于,所述流量上限确定模块用于确定所述总线集群中的机器在所述第二周期内的流量上限为以下两者中的最大值:
所述机器在所述第一周期内的流量占机器总流量的比例与所述调整后的支撑容量的乘积;
所述调整后的支撑容量与机器数量的比值。
29.根据权利要求23所述的服务器,其特征在于,所述流量控制模块用于获取在所述第二周期内所述总线集群中的机器总流量,如果所述机器总流量超过所述后端集群的支撑容量的预设倍数,则告警。
30.根据权利要求23所述的服务器,其特征在于,所述健康度数据包括所述后端集群的平均耗时、耗时分布数据和超时率;所述健康度判断模块用于判断所述第一周期内所述后端集群是否满足以下条件中的任意一者或者任意两者以上的组合,若判断为是,则判定所述后端集群缓慢:
所述后端集群的平均耗时达到第一阈值;
所述后端集群的耗时分布数据中,每个耗时区间中的请求比例未在预设范围内;
所述后端集群的超时率达到第二阈值。
31.根据权利要求23所述的服务器,其特征在于,所述健康度数据包括所述后端集群的成功率和错误率;所述健康度判断模块用于判断所述第一周期内所述后端集群是否满足以下条件中的任意一者或者两者的组合,若判断为是,则判定所述后端集群异常:
所述后端集群的成功率低于第三阈值;
所述后端集群的错误率达到第四阈值。
32.根据权利要求23所述的服务器,其特征在于,所述服务器还包括模拟压测模块,所述模拟压测模块包括:
指令接收模块,用于接收管理员输入的作为压测目标的后端集群和对所述压测目标进行模拟压测的指令;
短周期内数据接收模块,用于向所述总线集群发送短周期上报指令,接收所述总线集群按短周期上报的健康度数据;
短周期内流量控制模块,用于按所述短周期对所述总线集群中的机器的流量进行控制,且在每个短周期内将所述压测目标外的其它后端集群的请求量上限降低第一预设值。
33.根据权利要求32所述的服务器,其特征在于,所述模拟压测模块还包括:
模拟压测停止模块,用于当满足以下条件中的任意一者或者两者的组合时,停止模拟压测,恢复模拟压测前的流量限制数据,并向所述总线集群发送正常周期上报指令:
所述压测目标外的其它后端集群的请求量上限降低至第二预设值;
所述压测目标出现缓慢或异常。
34.一种分布式流量控制***,其特征在于,所述***包括:
总线集群,用于向管理端上报后端集群的健康度数据;
管理端,用于根据第一周期内的所述健康度数据判断后端集群是否缓慢或异常;
所述管理端还用于根据所述后端集群缓慢或异常的判断结果调整所述总线集群中的机器在第二周期内的流量限制,将所述流量限制发送至所述总线集群;
所述总线集群还用于根据所述流量限制在所述第二周期内对所述总线集群中的机器的流量进行控制。
35.根据权利要求34所述的***,其特征在于,所述管理端用于根据所述判断结果调整所述总线集群中的机器在所述第二周期内的流量上限。
36.根据权利要求35所述的***,其特征在于,所述管理端用于根据所述判断结果调整所述后端集群的支撑容量,根据调整后的所述支撑容量确定所述总线集群中的机器在所述第二周期内的流量上限。
37.根据权利要求36所述的***,其特征在于,所述管理端用于若所述后端集群缓慢或异常,则下调所述后端集群对应的支撑容量;若所述后端集群未出现缓慢或异常,则上调所述后端集群对应的支撑容量。
38.根据权利要求37所述的***,其特征在于,所述管理端用于将所述后端集群对应的支撑容量下调支撑容量初始值的预设百分比;将所述后端集群对应的支撑容量上调所述支撑容量初始值的预设百分比。
39.根据权利要求36所述的***,其特征在于,所述管理端用于确定所述总线集群中的机器在所述第二周期内的流量上限为以下两者中的最大值:
所述机器在所述第一周期内的流量占机器总流量的比例与所述调整后的支撑容量的乘积;
所述调整后的支撑容量与机器数量的比值。
40.根据权利要求34所述的***,其特征在于,所述总线集群还用于获取在所述第二周期内所述总线集群中的机器总流量;如果所述机器总流量超过所述后端集群的支撑容量的预设倍数,则向所述管理端发送告警信息。
41.根据权利要求34所述的***,其特征在于,所述健康度数据包括所述后端集群的平均耗时、耗时分布数据和超时率;所述管理端用于判断所述第一周期内所述后端集群是否满足以下条件中的任意一者或者任意两者以上的组合,若判断为是,则判定所述后端集群缓慢:
所述后端集群的平均耗时达到第一阈值;
所述后端集群的耗时分布数据中,每个耗时区间中的请求比例未在预设范围内;
所述后端集群的超时率达到第二阈值。
42.根据权利要求34所述的***,其特征在于,所述健康度数据包括所述后端集群的成功率和错误率;所述管理端用于判断所述第一周期内所述后端集群是否满足以下条件中的任意一者或者两者的组合,若判断为是,则判定所述后端集群异常:
所述后端集群的成功率低于第三阈值;
所述后端集群的错误率达到第四阈值。
43.根据权利要求34所述的***,其特征在于,所述管理端还用于接收管理员输入的作为压测目标的后端集群和对所述压测目标进行模拟压测的指令,向所述总线集群发送短周期上报指令;
所述总线集群还用于按短周期向所述管理端上报所述压测目标的健康度数据;
所述管理端还用于根据所述总线集群按短周期上报的健康度数据,向所述总线集群发送流量限制数据;
所述总线集群还用于根据所述流量限制数据按所述短周期对所述总线集群中的机器的流量进行控制,且在每个所述短周期内将所述压测目标外的其它后端集群的请求量上限降低第一预设值。
44.根据权利要求43所述的***,其特征在于,所述管理端还用于当满足以下条件中的任意一者或者两者的组合时,停止模拟压测,向所述总线集群发送正常周期上报指令和模拟压测前的流量限制数据:
所述压测目标外的其它后端集群的请求量上限降低至第二预设值;
所述压测目标出现缓慢或异常。
CN201310754752.2A 2013-12-31 2013-12-31 分布式流量控制方法、服务器和*** Active CN104753805B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310754752.2A CN104753805B (zh) 2013-12-31 2013-12-31 分布式流量控制方法、服务器和***
PCT/CN2014/095765 WO2015101309A1 (en) 2013-12-31 2014-12-31 Distributed flow control
US15/169,897 US10447789B2 (en) 2013-12-31 2016-06-01 Distributed flow control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310754752.2A CN104753805B (zh) 2013-12-31 2013-12-31 分布式流量控制方法、服务器和***

Publications (2)

Publication Number Publication Date
CN104753805A true CN104753805A (zh) 2015-07-01
CN104753805B CN104753805B (zh) 2018-07-24

Family

ID=53493255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310754752.2A Active CN104753805B (zh) 2013-12-31 2013-12-31 分布式流量控制方法、服务器和***

Country Status (3)

Country Link
US (1) US10447789B2 (zh)
CN (1) CN104753805B (zh)
WO (1) WO2015101309A1 (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106100901A (zh) * 2016-08-04 2016-11-09 ***股份有限公司 一种流速控制方法及装置
CN106921583A (zh) * 2016-12-07 2017-07-04 阿里巴巴集团控股有限公司 网络设备流量控制方法及装置
CN107105015A (zh) * 2017-03-31 2017-08-29 北京奇艺世纪科技有限公司 一种数据流的分流方法及装置
CN108156091A (zh) * 2016-12-02 2018-06-12 阿里巴巴集团控股有限公司 一种流量控制方法及***
CN109005125A (zh) * 2018-08-24 2018-12-14 阿里巴巴集团控股有限公司 动态限流方法、装置及***
CN109257245A (zh) * 2017-07-14 2019-01-22 阿里巴巴集团控股有限公司 流量监测、上传控制的方法及设备
CN109450806A (zh) * 2018-10-31 2019-03-08 中国联合网络通信集团有限公司 一种流量控制方法及装置、分布式集群
CN109617831A (zh) * 2019-02-20 2019-04-12 北京三快在线科技有限公司 用于分布式***的流量管理方法和装置以及计算设备
CN110120973A (zh) * 2019-04-28 2019-08-13 华为技术有限公司 一种请求控制方法、相关设备及计算机存储介质
CN110198275A (zh) * 2018-03-28 2019-09-03 腾讯科技(深圳)有限公司 一种流量控制方法、***、服务器及存储介质
CN110896382A (zh) * 2019-12-13 2020-03-20 北京奇艺世纪科技有限公司 流量控制方法、装置、设备和计算机可读存储介质
CN111786895A (zh) * 2020-03-16 2020-10-16 北京京东尚科信息技术有限公司 动态全局限流的方法和装置
CN111901188A (zh) * 2020-06-19 2020-11-06 微医云(杭州)控股有限公司 数据流量控制方法、装置、设备和存储介质
CN112165436A (zh) * 2020-10-15 2021-01-01 腾讯科技(深圳)有限公司 流量控制方法、装置及***
CN113726672A (zh) * 2020-10-23 2021-11-30 天翼智慧家庭科技有限公司 一种流控阀值自调整的方法和***
CN115114133A (zh) * 2022-08-05 2022-09-27 广东车海洋环保科技有限公司 基于java的***自适应限流方法、装置及存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2980253A1 (en) * 2015-03-23 2016-09-29 Romano RAPALLINI Network device, computer network and method for controlling environments
US20170317901A1 (en) * 2016-04-29 2017-11-02 Cisco Technology, Inc. Integrated approach to monitor gbp health and adjust policy service level
US10491704B2 (en) * 2016-11-07 2019-11-26 General Electric Company Automatic provisioning of cloud services
CN108196992B (zh) * 2017-12-28 2021-05-28 广州品唯软件有限公司 一种性能自动化测试方法和装置
CN111225004B (zh) * 2018-11-23 2022-11-22 中移(杭州)信息技术有限公司 一种服务器集群的扩容方法、装置和可读介质
CN110166371B (zh) * 2019-05-16 2022-11-22 北京达佳互联信息技术有限公司 流量控制方法、装置、电子设备及存储介质
CN111601007B (zh) * 2020-04-09 2021-04-20 深圳震有科技股份有限公司 一种限制呼叫的控制方法及电子设备
CN111556440A (zh) * 2020-05-07 2020-08-18 之江实验室 一种基于流量模式的网络异常检测方法
US20220303337A1 (en) * 2021-01-27 2022-09-22 Oracle International Corporation Load balancing agent

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741850A (zh) * 2009-12-25 2010-06-16 北京邮电大学 面向混合网络服务的多任务并发执行***及方法
CN101938401A (zh) * 2009-06-30 2011-01-05 华为技术有限公司 一种分流集群流量的方法及相关装置
CN103150241A (zh) * 2013-04-09 2013-06-12 上海市计量测试技术研究院 多服务器状态监控管理***和方法
CN103227838A (zh) * 2013-05-10 2013-07-31 中国工商银行股份有限公司 一种多重负载均衡处理装置与方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE370582T1 (de) * 2000-10-03 2007-09-15 U4Ea Technologies Ltd Zuweisung von prioritätsstufen in einem datenfluss
US20040213155A1 (en) * 2001-03-29 2004-10-28 Mitel Semiconductor V.N. Inc. Multi-processor data traffic shaping and forwarding
CN1292567C (zh) * 2002-06-22 2006-12-27 华为技术有限公司 Ip环分布式带宽处理方法
US20040128379A1 (en) * 2002-12-30 2004-07-01 Jerry Mizell Collecting standard interval metrics using a randomized collection period
US7346839B2 (en) * 2003-09-30 2008-03-18 Google Inc. Information retrieval based on historical data
US7543052B1 (en) * 2003-12-22 2009-06-02 Packeteer, Inc. Automatic network traffic discovery and classification mechanism including dynamic discovery thresholds
US8489720B1 (en) * 2004-03-31 2013-07-16 Blue Coat Systems, Inc. Cost-aware, bandwidth management systems adaptive to network conditions
US7822837B1 (en) * 2004-12-30 2010-10-26 Packeteer, Inc. Adaptive correlation of service level agreement and network application performance
US8036105B2 (en) * 2005-08-08 2011-10-11 International Business Machines Corporation Monitoring a problem condition in a communications system
US7756973B2 (en) * 2006-04-27 2010-07-13 International Business Machines Corporation Identifying a configuration for an application in a production environment
US20100010906A1 (en) * 2007-01-23 2010-01-14 William Grecia Point of sale payment method for multiple recipients using a digital payment service
JPWO2008126210A1 (ja) * 2007-03-27 2010-07-22 富士通株式会社 通信経路選択プログラム、通信経路選択方法および通信経路選択装置
ATE491183T1 (de) * 2007-04-16 2010-12-15 Tixel Gmbh Verfahren und vorrichtung zur zugriffssteuerung mehrerer applikationen
US20090210876A1 (en) * 2008-02-20 2009-08-20 Jinmei Shen Pull-model Workload Management with Synchronous-Asynchronous-Synchronous Bridge
WO2009155058A2 (en) * 2008-05-28 2009-12-23 Visa International Service Association Gateway service platform
US8761809B2 (en) * 2009-11-25 2014-06-24 Visa International Services Association Transaction using a mobile device with an accelerometer
US9215275B2 (en) * 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9124515B2 (en) * 2010-11-22 2015-09-01 Hewlett-Packard Development Company, L.P. Elephant flow detection in a computing device
US9609052B2 (en) * 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US9538402B2 (en) * 2011-09-30 2017-01-03 Nokia Solutions And Networks Oy Fault management traffic reduction in heterogeneous networks
CN103297477B (zh) * 2012-03-02 2016-03-02 腾讯科技(深圳)有限公司 一种数据采集上报***及数据处理方法和代理服务器
US10002141B2 (en) * 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US9088612B2 (en) * 2013-02-12 2015-07-21 Verizon Patent And Licensing Inc. Systems and methods for providing link-performance information in socket-based communication devices
US9692775B2 (en) * 2013-04-29 2017-06-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and system to dynamically detect traffic anomalies in a network
US9118571B2 (en) * 2013-07-08 2015-08-25 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating load balancing switches and controllers using matching patterns with unrestricted characters
US9548924B2 (en) * 2013-12-09 2017-01-17 Nicira, Inc. Detecting an elephant flow based on the size of a packet
US9806983B2 (en) * 2015-09-14 2017-10-31 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. System and method for control flow management in software defined networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938401A (zh) * 2009-06-30 2011-01-05 华为技术有限公司 一种分流集群流量的方法及相关装置
CN101741850A (zh) * 2009-12-25 2010-06-16 北京邮电大学 面向混合网络服务的多任务并发执行***及方法
CN103150241A (zh) * 2013-04-09 2013-06-12 上海市计量测试技术研究院 多服务器状态监控管理***和方法
CN103227838A (zh) * 2013-05-10 2013-07-31 中国工商银行股份有限公司 一种多重负载均衡处理装置与方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106100901B (zh) * 2016-08-04 2019-12-06 ***股份有限公司 一种流速控制方法及装置
CN106100901A (zh) * 2016-08-04 2016-11-09 ***股份有限公司 一种流速控制方法及装置
CN108156091A (zh) * 2016-12-02 2018-06-12 阿里巴巴集团控股有限公司 一种流量控制方法及***
CN106921583A (zh) * 2016-12-07 2017-07-04 阿里巴巴集团控股有限公司 网络设备流量控制方法及装置
CN107105015A (zh) * 2017-03-31 2017-08-29 北京奇艺世纪科技有限公司 一种数据流的分流方法及装置
CN107105015B (zh) * 2017-03-31 2020-11-27 北京奇艺世纪科技有限公司 一种数据流的分流方法及装置
CN109257245A (zh) * 2017-07-14 2019-01-22 阿里巴巴集团控股有限公司 流量监测、上传控制的方法及设备
CN110198275A (zh) * 2018-03-28 2019-09-03 腾讯科技(深圳)有限公司 一种流量控制方法、***、服务器及存储介质
CN109005125B (zh) * 2018-08-24 2022-05-10 创新先进技术有限公司 动态限流方法、装置及***
CN109005125A (zh) * 2018-08-24 2018-12-14 阿里巴巴集团控股有限公司 动态限流方法、装置及***
CN109450806A (zh) * 2018-10-31 2019-03-08 中国联合网络通信集团有限公司 一种流量控制方法及装置、分布式集群
CN109617831A (zh) * 2019-02-20 2019-04-12 北京三快在线科技有限公司 用于分布式***的流量管理方法和装置以及计算设备
CN110120973A (zh) * 2019-04-28 2019-08-13 华为技术有限公司 一种请求控制方法、相关设备及计算机存储介质
CN110896382A (zh) * 2019-12-13 2020-03-20 北京奇艺世纪科技有限公司 流量控制方法、装置、设备和计算机可读存储介质
CN111786895A (zh) * 2020-03-16 2020-10-16 北京京东尚科信息技术有限公司 动态全局限流的方法和装置
CN111901188A (zh) * 2020-06-19 2020-11-06 微医云(杭州)控股有限公司 数据流量控制方法、装置、设备和存储介质
CN112165436A (zh) * 2020-10-15 2021-01-01 腾讯科技(深圳)有限公司 流量控制方法、装置及***
CN112165436B (zh) * 2020-10-15 2024-02-20 腾讯科技(深圳)有限公司 流量控制方法、装置及***
CN113726672A (zh) * 2020-10-23 2021-11-30 天翼智慧家庭科技有限公司 一种流控阀值自调整的方法和***
CN113726672B (zh) * 2020-10-23 2024-04-02 天翼数字生活科技有限公司 一种流控阀值自调整的方法和***
CN115114133A (zh) * 2022-08-05 2022-09-27 广东车海洋环保科技有限公司 基于java的***自适应限流方法、装置及存储介质
CN115114133B (zh) * 2022-08-05 2023-03-14 广东车海洋环保科技有限公司 基于java的***自适应限流方法、装置及存储介质

Also Published As

Publication number Publication date
US20160316029A1 (en) 2016-10-27
US10447789B2 (en) 2019-10-15
WO2015101309A1 (en) 2015-07-09
CN104753805B (zh) 2018-07-24

Similar Documents

Publication Publication Date Title
CN104753805A (zh) 分布式流量控制方法、服务器和***
CN103369601B (zh) 为手机客户端提供大并发处理及流量控制的方法
CN102932413B (zh) 一种计算资源分配方法、云管理平台节点和计算资源集群
CN105376083A (zh) 节能控制方法、管理服务器和网络设备
CN102882745B (zh) 一种用于监控业务服务器的方法和装置
CN106161076B (zh) 虚拟网络功能扩展方法和装置
CN101164352B (zh) 一种分流短消息的方法及其***
CN108712994B (zh) 电梯***
CN104285459A (zh) 控制节点以及通信控制方法
CN101895472B (zh) 流业务负载分担方法和处理方法以及相应的设备和***
CN101729305A (zh) 故障自动恢复的方法、***和控制网元
CN108924202B (zh) 一种分布式集群的数据容灾方法以及相关装置
CN103947234A (zh) 用于mme和mme池负载均衡的***和方法
CN104811961A (zh) 一种lte无线网络拥塞感知和缓解的方法以及***
CN105227385A (zh) 一种故障处理的方法及***
CN104703165A (zh) 一种处理无线接入的方法、转发设备及网络控制器
CN103414739B (zh) 采用自动漂移的云服务器自动监控***及方法
CN1996881A (zh) 媒体资源分配的方法、装置和***
CN104348653A (zh) 云管理平台的用户任务实现方法、***与触发器
CN102263666A (zh) 基于业务流量许可进行业务调度的方法、装置及***
CN102571383B (zh) 一种接入控制方法及***
CN101715252A (zh) 一种群集短信中心及其实现容灾分流的方法
CN108667956A (zh) 一种5g***中的ip地址池管理方法
CN101951571A (zh) 短消息重试方法及短消息网关
US20090323523A1 (en) Method and Apparatus for Optimizing Station Data in Mobile Communication Network, and Computer-Readable Storage Medium for Computer Program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231227

Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.