在SLB中配置负载均衡OLC服务
前提条件
需要具备AppStage服务运维岗位权限或运维管理员权限,权限申请操作请参见申请权限。
新增资源
资源用于定义规则中要匹配的微服务名称和接口名称。如果需要对微服务下所有接口的请求总数进行限制,需要配置微服务资源;如果需要对某一个特定的接口的请求总数进行限制,则需要配置接口级资源。
- 进入AppStage运维中心。
- 在顶部导航栏选择服务。
- 单击,选择 。
- 选择左侧导航栏的 。
- 单击待配置OLC服务的名称,进入流控服务详情页面。
- 选择“资源列表”页签,单击“新增资源”。
- 配置资源相关参数,配置完成后单击“保存”。
- 微服务资源
表1 微服务资源参数说明 参数
说明
资源类别
选择微服务,对微服务下所有接口的请求总数进行限制。
资源名称
资源标识名称,用于后续添加规则。
字符长度0~50,可以由字母、数字、下划线、短横线组成,不包含特殊字符。
微服务名称
填写需要进行流控的微服务业务名称。
支持添加多个,使用英文逗号分隔,不允许存在中文及空格。
- 接口资源
表2 接口资源参数说明 参数
说明
资源类别
选择接口,对某一个特定的接口的请求总数进行限制。
资源名称
资源标识名称,用于后续添加规则。
字符长度0~50,可以由字母、数字、下划线、短横线组成,不包含特殊字符。
微服务名称
填写需要进行流控的微服务业务名称。
支持添加多个,使用英文逗号分隔,不允许存在中文及空格。
匹配类型
接口名称的匹配类型,支持以下两种:
- 精确匹配
- 正则匹配
接口等级
接口的重要程度,用于节点级动态流控,系统过载时优先放通核心接口。
- 核心接口
- 次核心接口
- 重要接口
- 次重要接口
- 一般接口
接口名称
填写需要进行流控的接口名称。
- 对于匹配类型为精确匹配,支持添加多个,使用英文逗号分隔;支持“*”通配符,表示所有接口。
- 对于匹配类型为正则匹配,支持Java正则表达式,只支持配置一个正则表达式;名称不允许存在中文及空格;通配符和正则匹配到的多个不同接口会各自统计流量信息各自流控。
- 微服务资源
- 在弹出框中单击“确认”。
新增流控规则
流控规则支持针对微服务/接口的资源流控、不区分微服务接口的全局参数流控和节点级动态流控规则。
- 在流控服务详情页面,选择“流控规则”页签,单击“新增流控规则”。
- 配置流控规则相关参数,配置完成后单击“保存”。
- 资源流控
表3 资源流控参数说明 参数
说明
限流控制类型
选择资源流控,针对微服务/接口资源进行流控。
资源名称
选择新增资源中创建的资源名称,与微服务/接口绑定,每个资源最多创建4条规则,规则的限流控制类型和是否集群流控不能重复。
流控类别
- QPS:每秒速率流控。
- 配额:特定时间的请求阈值。
限流阈值
流控阈值,整个微服务/接口调用总量的阈值,如果请求总量超过该阈值,后续请求会被流控;0表示不流控。
禁用时间
当限流控制类型为QPS时,显示该参数。
流控后禁用时间内的所有请求不再判断请求量,直接全部流控。
允许的突增量
当限流控制类型为QPS时,显示该参数。
流控突发量,该参数可以调整令牌桶的大小,令牌桶大小为(阈值+突增量)/时间窗口,时间窗口单位为s。
是否集群限流
选择“是”或“否”。开启后对集群内此资源的调用总量进行限制。
集群限流阈值模式
当流控类别为QPS,开启集群限流时,显示该参数。
- 单机均摊
- 总体阈值
本地配额缓存数
当流控类别为配额,开启集群限流时,显示该参数。
防止DCS热点key的参数,可以减少DCS的访问,默认值为5。
该参数需要合理配置,配置过小容易造成热点key问题,配置过大可能导致部分节点放通部分节点流控的问题。
时间窗口
填写时间,单位为秒,表示间隔多少秒允许一个请求通过。默认为1秒,取值范围为1~86400。
是否开启流控规则
选择是否开启流控规则。
新增参数
单击“新增参数”,可以根据需要新增多条流控规则。
- 参数名称:参数级规则的参数名。
- 限流阈值:默认的参数阈值,如果没有指定参数值,都按该阈值进行流控。
单击新增参数列表前的,单击“新增参数值”,可以为参数配置多条参数值。
- 参数值:参数级规则的参数值。
- 参数阈值:指定的参数值按该阈值进行流控。
- 全局参数流控
全局参数流控规则与资源流控的参数级规则含义类似,仅不对微服务/接口做限制。
表4 全局参数流控参数说明 参数
说明
限流控制类型
选择全局参数
参数名称
填写参数名称。
流控类别
- QPS:每秒速率流控。
- 配额:特定时间的请求阈值。
限流阈值
流控阈值,默认的参数阈值,如果没有指定参数值,都按该阈值进行流控。
禁用时间
当限流控制类型为QPS时,显示该参数。
流控后禁用时间内的所有请求不再判断请求量,直接全部流控。
允许的突增量
当限流控制类型为QPS时,显示该参数。
流控突发量,该参数可以调整令牌桶的大小,令牌桶大小为(阈值+突增量)/时间窗口,时间窗口单位为s。
是否集群限流
选择“是”或“否”。开启后对集群内此资源的调用总量进行限制。
集群限流阈值模式
当流控类别为QPS,开启集群限流时,显示该参数。
- 单机均摊
- 总体阈值
本地配额缓存数
当流控类别为配额,开启集群限流时,显示该参数。
防止DCS热点key的参数,可以减少DCS的访问,默认值为5。
该参数需要合理配置,配置过小容易造成热点key问题,配置过大可能导致部分节点放通部分节点流控的问题。
时间窗口
填写时间,单位为秒,表示间隔多少秒允许一个请求通过。默认为1秒,取值范围为1~86400。
是否开启流控规则
选择是否开启流控规则。
新增参数
单击“新增参数值”,配置多条参数值。
- 参数值:参数级规则的参数值。
- 参数阈值:指定的参数值按该阈值进行流控。
- 节点级动态流控
表5 节点级动态流控参数说明 参数
说明
限流控制类型
选择节点级动态流控。
是否开启流控规则
选择是否开启流控规则。
CPU过载阈值
CPU利用率超过该值时,接口的放通比例开始降低,直到降低至最低放通比例;CPU利用率越高,接口放通比例下降越快。该阈值要求为小数,范围为0~1,支持精度为小数点后四位。
CPU恢复阈值
CPU利用率小于该值时,接口的放通比例开始恢复,直到恢复至100%;CPU利用率越低,接口放通比例恢复越快。该阈值要求为小数,范围为0~1,支持精度为小数点后四位,并且小于CPU过载阈值。
最低放通比例
配置各个接口等级对应的最低放通比例,在CPU始终处于过载状态时,仍然能放通该比例的请求。
范围为0~1,支持精度为小数点后四位。
- 资源流控
- 在弹出框中单击“确认”。
新增黑白名单
黑名单规则会直接流控满足规则的请求,白名单规则会放通满足规则的请求。
- 在流控服务详情页面,选择“黑白名单”页签,单击“新增黑白名单”。
- 配置黑白名单相关参数,参数说明如表6所示。配置完成后单击“保存”。
- 在弹出框中单击“确认”。
新增熔断规则
- 在流控服务详情页面,选择“熔断规则”页签,单击“新增熔断规则”。
- 配置熔断规则相关参数,参数说明如表7所示。配置完成后单击“保存”。
表7 新增熔断规则参数说明 参数
说明
资源名称
选择新增资源中创建的资源名称,与微服务/接口绑定,每个资源最多创建4条规则,规则的熔断模式不能重复。
开启熔断规则
选择是否开启熔断规则。
熔断模式
- 直接失败:所有请求都熔断。
- 平均响应时间:当监测时间窗口内持续进入5个请求,每个请求对应时刻的平均响应时间(毫秒级)均超过阈值,资源进入熔断降级状态,那么在接下的时间窗口之内,对这个方法的调用都会自动地熔断。
- 异常比例:当监测时间窗口内资源的请求量>=请求量阈值(默认为5),并且监测时间窗口内异常总数占通过量的比值超过阈值之后,资源进入熔断降级状态,即在接下的时间窗口之内,对这个方法的调用都会自动地返回。
- 异常数:当资源在监测时间窗口内的异常数目超过阈值之后会进行熔断。
熔断时间窗口
熔断发生时的持续时间,单位为秒,取值范围5~86400。
平均响应时间
当熔断模式为平均响应时间时,配置时间,单位为ms。
异常比例
当熔断模式为异常比例时,配置异常比例,取值范围为0.0~1.0。
异常数
当熔断模式为异常数时,配置异常数。
单位时间窗口
熔断持续的时间窗口,单位为秒。
须知:由于熔断降级是根据整个监测时间窗口内的统计指标来判断是否进行熔断降级,如果时间窗口比熔断降级持续时间要大,则结束熔断状态后仍可能再进入熔断状态。
熔断结束后检测次数
熔断结束后的试探次数,默认为10,熔断器为HALF_OPEN时进入试探状态,允许一定数量的请求通过,然后重新计算单位时间窗口内请求的熔断指标是否超过阈值;对于异常数模式,如果试探次数小于配置的异常数阈值,那么只有所有试探请求都异常时才重新进入熔断状态。
连续失败梯度
连续失败是指接口失败进入熔断阶段,熔断结束后进入试探阶段,试探结束后接口依然失败,又进入熔断阶段,连续失败时熔断持续时间按照该梯度递增,试探阶段试探次数按照该梯度递减,比如如果梯度为0.1,初始熔断持续时间为10秒,试探次数为10次,比如第二次熔断持续时间为11秒,试探次数为9次。
最大梯度次数
连续失败次数达到最大梯度次数后,熔断持续时间和试探次数保持不变,不再递增或递减。连续失败梯度有值时才起作用,默认值为10。
请求量阈值
当熔断模式为平均响应时间和异常比例时,可以选择配置。
只有当监测时间窗口内的请求数目不小于该阈值时,才开始计算平均响应时间和异常比例,该阈值在熔断结束后的试探状态不生效。平均响应时间模式下,请求量阈值默认为1,异常比例模式下,默认值为5。
- 在弹出框中单击“确认”。
更多操作
操作 |
说明 |
---|---|
编辑流控服务配置 |
在流控服务详情页面,选择配置项页签,单击待编辑配置操作列的“编辑”。 |
删除流控服务配置 |
在流控服务详情页面,选择配置项页签,单击待删除配置操作列的“删除”。 |