sentinel 时间窗口_快速入门Sentinel

Sentinel:分布式系统的流量防卫兵

Sentinel是什么?

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。

Sentinel以流量为切λ点,从流昰控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

Sentinal 解决什么问题?

在大规模微服务架构的场景下,避免服务出现雪崩,要减少停机时间,要尽可能的提高服务可用性。限流和降级是一个非常重要的手段,具体实施方法可以归纳为八字箴言,分别是限流,降级,熔断和隔离。

大家可能会问:Sentinel 和之前常用的熔断降级库 Netflix Hystrix 有什么异同呢?Sentinel官网有一个对比的文章,这里摘抄一个总结的表格,具体的对比可以点此 链接 查看。对比内容SentinelHystrix隔离策略信号量隔离线程池隔离/信号量隔离

熔断降级策略基于响应时间或失败比率基于失败比率

实时指标实现滑动窗口滑动窗口(基于 RxJava)

规则配置支持多种数据源支持多种数据源

扩展性多个扩展点插件的形式

基于注解的支持支持支持

限流基于 QPS,支持基于调用关系的限流不支持

流量整形支持慢启动、匀速器模式不支持

系统负载保护支持不支持

控制台开箱即用,可配置规则、查看秒级监控、机器发现等不完善

常见框架的适配Servlet、Spring Cloud、Dubbo、gRPC 等Servlet、Spring Cloud Netflix

从对比的表格可以看到,Sentinel比Hystrix在功能性上还要强大一些,本文让我们一起来了解下Sentinel的源码,揭开Sentinel的神秘面纱。

Sentinal 流控

1.qps请求

如果选中qps,单机阈值设置为1,表示1秒钟只能请求一个

2.线程数

如果选中线程数,单机阈值设置为1,表示1秒钟只能有一个线程请求

3.关联

如果选中qps/线程数,a接口关联b接口,与a关联的b接口到达阈值时,就限流a接口。

(a是下订单接口,b是支付接口,支付接口到达阈值时,就现在下单的请求,缓冲下数据。)

4.预热

当流量进来时,设置等待时间,当达到等待时间了,就全部放行

5.排队等待

根据指定的的阈值,超过排队等待。

Sentinal 降级

1.RT平均响应时间

设置rt毫秒数,设置时间窗口,如果在设置的rt毫秒数内还没处理完,就设置降级的时间,不让访问

2.异常比例

设置异常比例(0.2=10%),设置时间窗口(间隔几秒),如果设置异常比例为0.2,设置时间是1,如果请求过来出现了20%以上的错误,才走降级,如果没超过,直接返回异常信息

3.异常数

设置异常比例,设置时间窗口如果设置异常比例为5,时间要大于1分钟(设置为70),如果1分钟出现5次以上的异常时,就会走熔断降级(就会返回指定的异常信息)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值