服务容错,sentinel

服务容错

在分布式架构的应用中,由于服务数量的增加,不可避免的会在某些时候产生依赖服务故障,在高并发的时候,当前服务如果没有容错处理,极大可能会导致服务崩溃。

案例

由一个最底层的原子服务实例发生故障时,处理请求缓慢或者不响应,会导致它的调用服务实例随着一起变得缓慢,长时间的请求堆积,会导致服务压力过大,从而导致更多的服务出现故障。

解决方法

1、超时:调用者服务实例,在服务调用时,一段时间内未得到响应则结束此次请求。
2、限流: 提供者服务实例,限制同一时间进入服务的请求数量,保证服务的正常运转。
3、舱壁模式:资源隔离,在服务调用者使用线程池等方式将依赖服务做隔离处理,限制依赖服务的资源
消耗在合理的范围内。
4、熔断器:在服务调用者,调用服务服务时,如果发现某个依赖服务故障,则自行熔断,不在调用,
在指定时间后再次检测当前依赖服务是否恢复,如果恢复,则恢复到集群环境中。

阿里巴巴 Sentinel

限流

1、流控模式:直接 ,流控效果:快速失败
对一个资源请求设置单机阈值,当每秒请求大于当前阈值时进行限流,拒绝剩余的请求。
2、流控模式:关联,流控效果:快速失败
设置一个关联请求,当关联请求达到每秒阈值时,对当前请求进行限流。
3、流控模式:直接,流控效果:Warm Up,默认冷加载因子是3
设置一个目标阈值,起始阈值为:目标阈值/冷加载因子,设定预热时间。
当每秒请求次数大于起始阈值时,阈值会在设定的预热时间内达到目标阈值。
4、流控模式:直接,流控效果:排队等待
设置一个阈值和超时时间,在当前请求数量大于阈值时,放行等阈值的请求数量,剩余请求进入
排队等待状态,若果超出设定的超时时间,当前请求被拒绝。

熔断

熔断器默认是关闭的,在请求失败次数达到阈值后打开熔断器,在设定的时间后放行一个检测请求,如果请求成功,关闭熔断器,如果请求失败,继续保持熔断器打开。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值