在SLB中进行限流配置
限制指定窗口内的访问频次。
前提条件
需要具备AppStage服务运维岗位权限或运维管理员权限,权限申请操作请参见申请权限。
流控类型介绍
支持的流控类型有节点级流控,服务级流控,接口级流控,IP流控,自定义参数流控,多参数组合流控,配额流控及并发连接流控,流控类型介绍如表1所示。每种类型的流控只能添加一次,SLB流控的顺序按照页面从上往下匹配,页面支持上下移动流控的顺序。
类型 |
流控维度 |
窗口类型 |
限制 |
---|---|---|---|
节点级流控 |
所有请求 |
漏桶 |
请求速率 |
服务级流控 |
以请求的Host字段为维度 |
漏桶 |
请求速率 |
接口级流控 |
以请求的uri路径为维度 |
漏桶 |
请求速率 |
IP流控 |
以取得的请求IP为维度 |
漏桶 |
请求速率 |
自定义参数流控 |
以自定义的单个参数为维度 |
漏桶 |
请求速率 |
多参数组合流控 |
以自定义的多个参数为维度 |
漏桶 |
请求速率 |
配额流控 |
以自定义的多个参数为维度 |
固定窗口。 |
请求量。 |
并发连接流控 |
以自定义的多个参数为维度 |
N/A |
并发量。 |
- 窗口类型
- 限制类型
- 请求量:并不关注请求是否为并发,例如10个请求不论到来和处理的时间是否有并发情况,都记为10个。
- 并发量:只看某时间点,正在处理的请求的个数。如果请求1的开始时间到响应时间这个时间段,与请求2的开始时间到响应时间的时间段并不相互交叠,则请求1和请求2不是并发。否则存在并发关系。
配置全局开关
- 进入AppStage运维中心。
- 在顶部导航栏选择服务。
- 单击,选择 。
- 选择左侧导航栏的“实例管理”。
- 在实例列表中单击待配置实例的名称,进入实例详情页面。
- 选择“限流配置”页签,单击“编辑”。
- 根据需要开启“流控总开关”和“分摊模式开关”。开关具体说明如表2所示。
新增节点级流控
- 在“限流配置”页签,单击“新增流控”。
- 流控类型选择为“节点级流控”,单击“确定”。
- 配置相关参数,参数说明如表3所示。
表3 节点级流控参数说明 参数
说明
限流降级url
- 不配置时使用默认降级策略503,通过设置转发策略支持,包括返回指定的错误码、报文等。
- 如需配置,建议配置为以@olc_degrade开头的字符串,并在SLB服务管理里准备同名转发策略,在此处填写进行关联。
限流门限值
每秒允许进入SLB节点的最大并发请求。默认0不限流。
突发量
在滑动窗口下,流控值会拆到较细粒度,比如X个/ms,此时通常配有突发量。突发量允许个别突增点发生。
- 突发量为0时,严格限制请求低于X个/ms,一旦突破则被流控,非常敏感。
- 突发量配置后,N个请求本应被流控,突发量>N个请求时,则可短时内免于流控。
突发量本身没有周期概念,用一个少一个,用完则无法使用。N个请求本应被流控,突发量>N个请求时,则可短时内免于流控,用掉之后,突发量池产生亏空,通过节省的流控值回补进突发量。
由于开源软件在高并发下,有可能超出流控量,故实施了保护机制,1/10s检查一次,是否用掉1/10的突发量,如用到则触发保护,下个1/10s不得再用。
自定义标签
可为空,字符长度0~200,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:group_01。
- 根据需要开启节点级流控开关,关闭时规则不生效。
新增服务级流控
- 在“限流配置”页签,单击“新增流控”。
- 流控类型选择为“服务级流控”,单击“确定”。
- 配置相关参数,参数说明如表4所示。
表4 服务级流控参数说明 参数
说明
限流降级url
- 不配置时使用默认降级策略503,通过设置转发策略支持,包括返回指定的错误码、报文等。
- 如需配置,建议配置为以@olc_degrade开头的字符串,并在SLB服务管理里准备同名转发策略,在此处填写进行关联。
限流门限值
每秒允许进入SLB节点的最大并发请求。默认0不限流。
突发量
在滑动窗口下,流控值会拆到较细粒度,比如X个/ms,此时通常配有突发量。突发量允许个别突增点发生。- 突发量为0时,严格限制请求低于X个/ms,一旦突破则被流控,非常敏感。
- 突发量配置后,N个请求本应被流控,突发量>N个请求时,则可短时内免于流控。
突发量本身没有周期概念,用一个少一个,用完则无法使用。N个请求本应被流控,突发量>N个请求时,则可短时内免于流控,用掉之后,突发量池产生亏空,通过节省的流控值回补进突发量。
由于开源软件在高并发下,有可能超出流控量,故实施了保护机制,1/10s检查一次,是否用掉1/10的突发量,如用到则触发保护,下个1/10s不得再用。
新增子项
如果需要对特定域名进行特别的流控策略,则单击“新建子项”,设置Host匹配条件与对应的限流门限值和突发量。
- (可选)如果需要对特定域名进行特别的流控策略,则单击“新建子项”。
表5 特定域名流控参数说明 参数
说明
域名
流控的域名。
匹配条件
- equal
- pettern
限流门限值
单个子项的限流门限值。
自定义标签
可为空,字符长度0~200,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:group_01。
突发量
单个子项的突发量。
操作
- 上移
- 下移
- 删除
- 根据需要开启服务级流控开关,关闭时规则不生效。
新增接口级流控
- 在“限流配置”页签,单击“新增流控”。
- 流控类型选择为“接口级流控”,单击“确定”。
- 配置相关参数,参数说明如表6所示。
表6 接口级流控参数说明 参数
说明
限流降级url
- 不配置时使用默认降级策略503,通过设置转发策略支持,包括返回指定的错误码、报文等。
- 如需配置,建议配置为以@olc_degrade开头的字符串,并在SLB服务管理里准备同名转发策略,在此处填写进行关联。
限流门限值
每秒允许进入SLB节点的最大并发请求。默认0不限流。
突发量
在滑动窗口下,流控值会拆到较细粒度,比如X个/ms,此时通常配有突发量。突发量允许个别突增点发生。- 突发量为0时,严格限制请求低于X个/ms,一旦突破则被流控,非常敏感。
- 突发量配置后,N个请求本应被流控,突发量>N个请求时,则可短时内免于流控。
突发量本身没有周期概念,用一个少一个,用完则无法使用。N个请求本应被流控,突发量>N个请求时,则可短时内免于流控,用掉之后,突发量池产生亏空,通过节省的流控值回补进突发量。
由于开源软件在高并发下,有可能超出流控量,故实施了保护机制,1/10s检查一次,是否用掉1/10的突发量,如用到则触发保护,下个1/10s不得再用。
- (可选)如果需要对特定接口uri进行特别的流控策略,则单击“新建子项”。
表7 特定接口uri流控参数说明 参数
说明
接口URL
流控的接口URL。
匹配条件
- equal
- pettern
限流门限值
单个子项的限流门限值。
自定义标签
可为空,字符长度0~200,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:group_01。
突发量
单个子项的突发量。
聚合统计
选择开启或关闭,默认不聚合,表示匹配此条规则的url各自计数。如果开启聚合,表示符合此条规则时,合并计数。
例如:
- 聚合统计开启:接口/abc/def的门限值设置为1000,/abc/def/a,abc/def/b等加在一起为1000。
- 聚合统计关闭:接口/abc/def的门限值设置为1000,/abc/def/a,abc/def/b等每个url的门限值都为1000。
操作
- 上移
- 下移
- 删除
- 根据需要开启接口级流控开关,关闭时规则不生效。
新增IP流控
- 在“限流配置”页签,单击“新增流控”。
- 流控类型选择为“IP流控”,单击“确定”。
- 配置相关参数,参数说明如表8所示。
表8 IP流控参数说明 参数
说明
限流降级url
- 不配置时使用默认降级策略503,通过设置转发策略支持,包括返回指定的错误码、报文等。
- 如需配置,建议配置为以@olc_degrade开头的字符串,并在SLB服务管理里准备同名转发策略,在此处填写进行关联。
限流门限值
每秒允许进入SLB节点的最大并发请求。默认0不限流。
突发量
在滑动窗口下,流控值会拆到较细粒度,比如X个/ms,此时通常配有突发量。突发量允许个别突增点发生。
- 突发量为0时,严格限制请求低于X个/ms,一旦突破则被流控,非常敏感。
- 突发量配置后,N个请求本应被流控,突发量>N个请求时,则可短时内免于流控。
突发量本身没有周期概念,用一个少一个,用完则无法使用。N个请求本应被流控,突发量>N个请求时,则可短时内免于流控,用掉之后,突发量池产生亏空,通过节省的流控值回补进突发量。
由于开源软件在高并发下,有可能超出流控量,故实施了保护机制,1/10s检查一次,是否用掉1/10的突发量,如用到则触发保护,下个1/10s不得再用。
- (可选)如果需要对特定接口IP进行特别的流控策略,则单击“新建子项”。
主要根据X-Forwarded-For(XFF,是一个HTTP请求头字段,用于表示HTTP请求的来源IP地址)和$remote_addr(SLB收到的请求的IP层source IP,现网通常为ELB的IP或者F5的IP)进行匹配。
表9 特定IP流控参数说明 参数
说明
xff获取ip
- left-ip:从左取IP,从头部X-Real-IP取得IP,如不存在,取得X-Forwarded-For最左侧非内网段IP,如未取得,则取IP报文source IP。
- right-ip:从右取IP,从IP报文取source IP,如果是内部信任IP,则依次从右向左逐个取X-Forwarded-For,一旦遇到非内部信任IP,则返回它,直至取到最左边为止。
匹配条件
- sha256
- rangIP
值
对应匹配的值。
上传文件格式为TXT格式,多个数据用“,”分隔,文件大小不能超过102400B。
限流门限值
单个子项的限流门限值。
自定义标签
可为空,字符长度0~200,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:group_01。
突发量
单个子项的突发量。
操作
- 上移
- 下移
- 删除
- 根据需要开启IP流控开关,关闭时规则不生效。
新增自定义参数流控
- 在“限流配置”页签,单击“新增流控”。
- 流控类型选择为“自定义参数流控”,单击“确定”。
- 配置流控规则,单击“新建子项”可以新增多条流控规则,参数说明如表10所示。
表10 自定义参数流控参数说明 参数
说明
限流降级url
- 不配置时使用默认降级策略503,通过设置转发策略支持,包括返回指定的错误码、报文等。
- 如需配置,建议配置为以@olc_degrade开头的字符串,并在SLB服务管理里准备同名转发策略,在此处填写进行关联。
参数
字符长度小于50,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符。例:param_home-001。
位置
- queryString
- header
- resource
- body-json
- body-form
匹配条件
- equal
- pattern
- sha256
值
对应匹配的值。
上传文件格式为TXT格式,多个数据用“,”分隔,文件大小不能超过102400B。
- 当匹配条件为equal时,例如填写1,2,3,表示1或2或3都可匹配。
限流门限值
单个子项的限流门限值。
自定义标签
可为空,字符长度0~200,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:group_01。
突发量
单个子项的突发量。
操作
- 上移
- 下移
- 删除
- 根据需要开启自定义参数流控开关,关闭时规则不生效。
新增多参数组合流控
可设置多个参数匹配同时满足时的,对应的限流条件
- 在“限流配置”页签,单击“新增流控”。
- 流控类型选择为“多参数组合流控”,单击“确定”。
- 配置流控规则,参数说明如表11所示。
单击“新增配置组”,可以配置多个配置组;在各配置组中单击“新增子项”,可以配置多条子项。多个配置组之间关系为“或”,多条子项之间关系为“与”。
表11 多参数组合流控参数说明 参数
说明
限流降级url
- 不配置时使用默认降级策略503,通过设置转发策略支持,包括返回指定的错误码、报文等。
- 如需配置,建议配置为以@olc_degrade开头的字符串,并在SLB服务管理里准备同名转发策略,在此处填写进行关联。
限流门限值
每秒允许进入SLB节点的最大并发请求。默认0不限流。
突发量
在滑动窗口下,流控值会拆到较细粒度,比如X个/ms,此时通常配有突发量。突发量允许个别突增点发生。
- 突发量为0时,严格限制请求低于X个/ms,一旦突破则被流控,非常敏感。
- 突发量配置后,N个请求本应被流控,突发量>N个请求时,则可短时内免于流控。
突发量本身没有周期概念,用一个少一个,用完则无法使用。N个请求本应被流控,突发量>N个请求时,则可短时内免于流控,用掉之后,突发量池产生亏空,通过节省的流控值回补进突发量。
由于开源软件在高并发下,有可能超出流控量,故实施了保护机制,1/10s检查一次,是否用掉1/10的突发量,如用到则触发保护,下个1/10s不得再用。
自定义标签
可为空,字符长度0~200,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:group_01。
类型
- path
- left-ip:从左取IP,从头部X-Real-IP取得IP,如不存在,取得X-Forwarded-For最左侧非内网段IP,如未取得,则取IP报文source IP。
- right-ip:从右取IP,从IP报文取source IP,如果是内部信任IP,则依次从右向左逐个取X-Forwarded-For,一旦遇到非内部信任IP,则返回它,直至取到最左边为止。
- 自定义参数
参数
当类型为自定义参数时,需要配置此参数。
字符长度小于50,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符。例:param_home-001。
位置
当类型为自定义参数时,需要配置此参数。
- queryString
- header
- resource
- body-json
- body-form
匹配条件
- 当类型为left-ip或right-ip时,仅支持:sha256和rangeIP。
- 当类型为path或自定义参数时,仅支持:equal、sha256、pattern。
值
对应匹配的值。
上传文件格式为TXT格式,多个数据用“,”分隔,文件大小不能超过102400B。
- 当匹配条件为equal时,例如填写1,2,3,表示1或2或3都可匹配。
聚合统计
选择开启或关闭,默认不聚合,表示匹配此条规则的url各自计数。如果开启聚合,表示符合词条规则时,合并计数。
例如:
- 聚合统计开启:接口/abc/def的门限值设置为1000,/abc/def/a,abc/def/b等加在一起为1000。
- 聚合统计关闭:接口/abc/def的门限值设置为1000,/abc/def/a,abc/def/b等每个url的门限值都为1000。
操作
- 上移
- 下移
- 删除
- 根据需要开启多参数组合流控开关,关闭时规则不生效。
新增配额流控
配额流控与多参数组合流控很相似,不同之处在于,多参数组合是滑动窗口,会时刻将请求限制在一定门限下, 门限分配均匀;配额是固定窗口,配额只负责在这个时间片内,请求不超限, 而不会去均匀地限制请求。
- 在“限流配置”页签,单击“新增流控”。
- 流控类型选择为“配额流控”,单击“确定”。
- 配置流控规则,参数说明如表12所示。
单击“新增配置组”,可以配置多个配置组;在各配置组中单击“新增子项”,可以配置多条子项。多个配置组之间关系为“或”,多条子项之间关系为“与”。
表12 配额流控参数说明 参数
说明
限流降级url
- 不配置时使用默认降级策略503,通过设置转发策略支持,包括返回指定的错误码、报文等。
- 如需配置,建议配置为以@olc_degrade开头的字符串,并在SLB服务管理里准备同名转发策略,在此处填写进行关联。
配额周期窗口
配置配额周期的窗口大小。
配额大小
周期内允许的配额,超过则被流控。
自定义标签
可为空,字符长度0~200,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:group_01。
类型
- path
- left-ip:从左取IP,从头部X-Real-IP取得IP,如不存在,取得X-Forwarded-For最左侧非内网段IP,如未取得,则取IP报文source IP。
- right-ip:从右取IP,从IP报文取source IP,如果是内部信任IP,则依次从右向左逐个取X-Forwarded-For,一旦遇到非内部信任IP,则返回它,直至取到最左边为止。
- 自定义参数
参数
当类型为自定义参数时,需要配置此参数。
字符长度小于50,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符。例:param_home-001。
位置
当类型为自定义参数时,需要配置此参数。
- queryString
- header
- resource
- body-json
- body-form
匹配条件
- 当类型为left-ip或right-ip时,仅支持:sha256和rangeIP。
- 当类型为path或自定义参数时,仅支持:equal、sha256、pattern。
值
对应匹配的值。
上传文件格式为TXT格式,多个数据用“,”分隔,文件大小不能超过102400B。
- 当匹配条件为equal时,例如填写1,2,3,表示1或2或3都可匹配。
聚合统计
选择开启或关闭,默认不聚合,表示匹配此条规则的url各自计数。如果开启聚合,表示符合词条规则时,合并计数。
例如:
- 聚合统计开启:接口/abc/def的门限值设置为1000,/abc/def/a,abc/def/b等加在一起为1000。
- 聚合统计关闭:接口/abc/def的门限值设置为1000,/abc/def/a,abc/def/b等每个url的门限值都为1000。
操作
- 上移
- 下移
- 删除
- 根据需要开启配额流控开关,关闭时规则不生效。
新增并发连接流控
可设置多个参数匹配同时满足时的,对应的并发限流条件,两个请求同时在处理中被认为是并发。
- 在“限流配置”页签,单击“新增流控”。
- 流控类型选择为“并发连接流控”,单击“确定”。
- 配置流控规则,参数说明如表13所示。
单击“新增配置组”,可以配置多个配置组;在各配置组中单击“新增子项”,可以配置多条子项。多个配置组之间关系为“或”,多条子项之间关系为“与”。
表13 并发连接流控参数说明 参数
说明
限流降级url
- 不配置时使用默认降级策略503,通过设置转发策略支持,包括返回指定的错误码、报文等。
- 如需配置,建议配置为以@olc_degrade开头的字符串,并在SLB服务管理里准备同名转发策略,在此处填写进行关联。
限流门限值
每秒允许进入SLB节点的最大并发请求。默认0不限流。
突发量
在滑动窗口下,流控值会拆到较细粒度,比如X个/ms,此时通常配有突发量。突发量允许个别突增点发生。
- 突发量为0时,严格限制请求低于X个/ms,一旦突破则被流控,非常敏感。
- 突发量配置后,N个请求本应被流控,突发量>N个请求时,则可短时内免于流控。
突发量本身没有周期概念,用一个少一个,用完则无法使用。N个请求本应被流控,突发量>N个请求时,则可短时内免于流控,用掉之后,突发量池产生亏空,通过节省的流控值回补进突发量。
由于开源软件在高并发下,有可能超出流控量,故实施了保护机制,1/10s检查一次,是否用掉1/10的突发量,如用到则触发保护,下个1/10s不得再用。
自定义标签
可为空,字符长度0~200,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符,例:group_01。
类型
- path
- left-ip:从左取IP,从头部X-Real-IP取得IP,如不存在,取得X-Forwarded-For最左侧非内网段IP,如未取得,则取IP报文source IP。
- right-ip:从右取IP,从IP报文取source IP,如果是内部信任IP,则依次从右向左逐个取X-Forwarded-For,一旦遇到非内部信任IP,则返回它,直至取到最左边为止。
- 自定义参数
参数
当类型为自定义参数时,需要配置此参数。
字符长度小于50,可以由字母、数字、下划线、短横线、点组成,不能包含特殊字符。例:param_home-001。
位置
当类型为自定义参数时,需要配置此参数。
- queryString
- header
- resource
- body-json
- body-form
匹配条件
- 当类型为left-ip或right-ip时,仅支持:sha256和rangeIP。
- 当类型为path或自定义参数时,仅支持:equal、sha256、pattern。
值
对应匹配的值。
上传文件格式为TXT格式,多个数据用“,”分隔,文件大小不能超过102400B。
- 当匹配条件为equal时,例如填写1,2,3,表示1或2或3都可匹配。
操作
- 上移
- 下移
- 删除
- 根据需要开启并发连接流控开关,关闭时规则不生效。