自动故障剔除

自动故障剔除功能会自动监控 RPC 调用的情况,当某个节点出现故障时,可对故障节点进行权重降级,并在节点恢复健康时进行权重恢复。目前支持 Bolt 协议。

配置方式

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

参数

默认值

说明

com.alipay.sofa.rpc.aft.time.window

10s

时间窗口:用于设定统计信息计算的周期。

com.alipay.sofa.rpc.aft.least.window.count

10 次

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

com.alipay.sofa.rpc.aft.least.window.exception.rate.multiple

6 倍

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

com.alipay.sofa.rpc.aft.weight.degrade.rate

1/20

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

com.alipay.sofa.rpc.aft.weight.recover.rate

2 倍

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

com.alipay.sofa.rpc.aft.degrade.effective

false

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

com.alipay.sofa.rpc.aft.degrade.least.weight

1

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

com.alipay.sofa.rpc.aft.degrade.max.ip.count

2

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

com.alipay.sofa.rpc.aft.regulation.effective

false

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

说明

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

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

配置示例

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。