全部产品

自动故障剔除

更新时间:2021-02-08 19:22:59

自动故障剔除,目前支持 bolt 协议。它会自动监控 RPC 调用的情况。

主要处理措施包括:

  • 对故障节点进行权重降级。

  • 并在节点恢复健康时进行权重恢复。

配置方式

在 SOFABoot 中,将自动故障剔除的参数配置到 application.properties 即可。配置说明如下:

  • 每个参数都有默认值,您可以根据需要自行修改参数值。

  • com.alipay.sofa.rpc.aft.regulation.effective 是该功能的全局开关,如果关闭则该功能不会运行,其他参数也都不生效。

属性的前缀都为 com.alipay.sofa.rpc.aft.。属性后缀说明如下:

属性

描述

默认值

time.window

时间窗口大小:对统计信息计算的周期。

10s

least.window.count

时间窗口内最少调用数:只有在时间窗口内达到了该最低值的数据才会被加入到计算和调控中。

10 次

least.window.exception.rate.multiple

时间窗口内异常率与服务平均异常率的降级比值:在对统计信息进行计算的时候,会计算出该服务所有有效调用 IP 的平均异常率,如果某个 IP 的异常率大于等于了这个最低比值,则会被降级。

6 倍

weight.degrade.rate

降级比率:地址在进行权重降级时的降级比率。

1/20

weight.recover.rate

恢复比率:地址在进行权重恢复时的恢复比率。

2 倍

degrade.effective

降级开关:如果应用打开了这个开关,则会对符合降级的地址进行降级,否则只会进行日志打印。

false(关闭)

degrade.least.weight

降级最小权重:地址权重被降级后的值如果小于这个最小权重,则会以该最小权重作为降级后的值。

1

degrade.max.ip.count

降级的最大 IP 数:同一个服务被降级的 IP 数不能超过该值。

2

regulation.effective

全局开关:如果应用打开了这个开关,则会开启整个单点故障自动剔除功能,否则该功能不启用。

false(关闭)

说明

只有应用打开了降级开关,所配置的降级比率、降级最小权重、降级的最大 IP 数等属性才会生效。

配置示例

com.alipay.sofa.rpc.aft.time.window=20
com.alipay.sofa.rpc.aft.least.window.count=30
com.alipay.sofa.rpc.aft.least.window.exception.rate.multiple=1.4
com.alipay.sofa.rpc.aft.weight.degrade.rate=0.5
com.alipay.sofa.rpc.aft.weight.recover.rate=1.2
com.alipay.sofa.rpc.aft.degrade.effective=true
com.alipay.sofa.rpc.aft.degrade.least.weight=1
com.alipay.sofa.rpc.aft.degrade.max.ip.count=2
com.alipay.sofa.rpc.aft.regulation.effective=true

对示例配置,说明如下:

  • 已打开自动故障剔除功能和降级开关:当节点出现故障时会被进行权重降级,在恢复时会被进行权重恢复。

  • 每隔 20s 进行一次节点健康状态的度量,20s 内调用次数超过 30 次的节点才被作为计算数据。

  • 如果单个节点的异常率超过了所有节点的平均异常率的 1.4 倍,则对该节点进行权重降级,降级的比率为 0.5。

  • 如果单个节点的异常率低于了平均异常率的 1.4 倍,则对该节点进行权重恢复,恢复的比率为 1.2。

  • 权重最小降级到 1。

  • 单个服务最多降级 2 个 IP。