博客信息

快速入门Sentinel

0
发布时间:『 2020-07-30 15:46』  博客类别:Spring Cloud  阅读(729) 评论(0)

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 流控

image.png

    1.qps请求

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

    2.线程数

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

    3.关联

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

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

    4.预热

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

    5.排队等待

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


Sentinal 降级

image.png

        1.RT平均响应时间

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

        2.异常比例

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

        3.异常数

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

            

             



关键字:   无

上一篇:码农

下一篇:快速搭建Nacos环境

博主信息

勿扰
简介:对自己狠一点,社会才会对你好一点!
4年12月
QQ
热门文章
Powered by 勿扰 V2.0 湘ICP备18002237号-2     Copyright © 2016-2023 勿扰个人博客 版权所有