高可用最佳实践

2022-03-05  本文已影响0人  谭英智

熔断

ha-rongduan
ha-rongduanstate

节流

ha-jieliu

上面的公式代表客户端请求拒绝概率

requests是收到的请求

accepts是后端接收的请求

当requests>K*accepts时,开始节流

K越大,可以接受后端拒绝服务越多

K越小,对后端拒绝服务越小

客户端通过上面的公式,以一定概率抛弃请求。

限流

ha-windows

例如一个格子1s

一个窗口包含5个格子

如果一个窗口的流量超过阈值,则抛弃请求

窗口每过一秒向右移动一格

存在的问题:

  1. 流量超过,则必须抛弃或者降级
  2. 控制不够精细,不能限制突发流量
ha-lingpaitong
ha-get-lingpai

初始先注满令牌桶

周期性的检查令牌桶是否满,未满则注入新的令牌

客户端每次发生调用,都先取令牌,如果获取到,则执行,否则拒绝服务

维度

负载均衡

ha-ewma

通过把过去的信息加权平均,来计算当前服务器的负载

通过EWMA计算每个后端服务器的负载

使用p2c随机选择两个后端服务器结点

比较两个结点的EWMA值,选择负载低的结点进行发送

重试

幂等

降级

当发生后端服务器负载过高,或者拒绝服务时,返回兜底资源,而不是请求后端服务器,来保证服务的可用性

超时

过载保护

Ref:

https://baijiahao.baidu.com/s?id=1714316170925203681&wfr=spider&for=pci1i2

https://martinfowler.com/bliki/CircuitBreaker.html

https://cloud.tencent.com/developer/news/868069

https://zhuanlan.zhihu.com/p/146848111

https://cloud.tencent.com/developer/article/1618923

上一篇下一篇

猜你喜欢

热点阅读