google的熔断保护策略
熔断即不向服务端发送请求,直接认为获取不到数据。
客户端根据以下公式计算熔断概率:
设定滑动窗口,比如2分钟,每次计算熔断概率时都统计一下过去2分钟的
requests:每服务端发送了多少次请求
accepts:服务端成功响应了多少次
所以requests-accepts表示请求失败的次数
熔断概率公式的核心是,即过去一段时间请求失败的概率,以此来作为熔断概率。因为失败率越高,说明服务端负载越高,应该减少请求量,所以熔断概率应该增大。
分母加1是为了防止除0异常。
系数k越大,熔断概率越小,小到可能为负数,但概率总不能为负数吧,所以最外层的max(0 就是用来保证概率非负的。