sentinel限流降级

sentinel限流降级,第1张

sentinel限流降级 1.降级是指:服务在访问的过程中发生了阻塞,那么这个时候就选择抛出异常结束这个服务,这就叫降级.

2.慢调用比例是指:请求数超过所设置的数量后,平均响应时间超过设定的毫秒数的30%,则对请求进行熔断,熔断时长为你所设置的值, 所设置的秒后恢正常

3.Sentinel异常处理:系统提供了默认的异常处理机制,当默认处理机制不满足用户的需求时那么就可自定义,定义方式上可以直接或间接实现BlockEceptionHandler接口,并将对象交给Spring容器管理

面试分析

4. 为何降级熔断:让外部应用停止对服务的访问,生活中的跳闸,路障设置 此路不通

5.为什么要进行熔断:平均响应速度越来越慢或经常出现异常,这样可能会导致调用链堆积,最终系统崩溃

6.sentinel中限流,降级的异常父类是谁:(BlockException)

7.sentinel出现降级熔断时,系统底层抛出的异常是谁:(DegradeException)

8.sentinel中异常处理接口是谁:(BlockExceptionHandler)

9.sebtinel中异常处理接口下默认的实现类为:(DafaultBlockExceptionHandler)

10.假如sentinel中默认的异常处理规则不满足用户需怎么办: 直接或间接实现BlockExceptionHandler

11.sentienl熔断降级策略有哪些:慢调用,异常比例,异常数

热点规则:

1.热点规则的限流模式只有QPS模式(这叫热点),参数索引@SentinelResource注解的方法参数下标,0代表第一个参数,1代表第二个参数,单机阈值及统计窗口时长表示此窗口时间超过阈值就限流

然后出现500异常表示限流成功

2.热点参数就是特殊的流控,流控设置是针对整个请求的,但热点参数它可以设置到具体那个参数,甚至参数针对的值,这样更灵活的进行流控管理

3.设计特定参数

例如:参数等于5,阈值限流100 需要在两秒内访问100次 其他参数阈值为1

面试分析

1.如何理解热点数据:访问频度比较高的数据,某些商品,某篇文章,某个视频

2.热点数据的限流规则是:主要针对参数进行限流设计

3.热点数据中的特殊参数如何理解:热点限流中的某个参数值得阈值设计

4.对于热点数据得访问数据限流以后底层异常是什么:ParamFlowException

sentinel系统规则(了解)

系统是一种全局设计规则其中:

     Load(仅对 Linux/Unix-like 机器生效):当系统 load1 超过阈值,且系统当前的并发线程数超过系统容量时才会触发系统保护。系统容量由系统的 maxQps * minRt 计算得出。设定参考值一般是 CPU cores * 2.5。
CPU使用率:当系统 CPU 使用率超过阈值即触发系统保护(取值范围 0.0-1.0)。
RT:当单台机器上所有入口流量的平均 RT 达到阈值即触发系统保护,单位是毫秒。
线程数:当单台机器上所有入口流量的并发线程数达到阈值即触发系统保护。
入口 QPS:当单台机器上所有入口流量的 QPS 达到阈值即触发系统保护。
说明,系统保护规则是应用整体维度的,而不是资源维度的,并且仅对入口流量生效。入口流量指的是进入应用的流量(EntryType.IN),比如 Web 服务。
 

面试分析

1.如何理解sentinel中的系统规则 :是对所有链路的控制规则,是一种系统保护策略

2.sentinel的常用系统规则有哪些: RT,QPS,CPU,线程,Load-linux,unix

3.sentinel系统保护规则被触发以后底层会抛出什么异常:SystemBolckException

sentinel授权规则(重要)

很多时候 需要根据调用方来限制是否通过,这时候可以使用sentinel的黑白名单控制的功能,黑白名单根据资源的请求来源(origin)限制资源是否通过,若配置白名单则只有请求来源位于白名单内是才能通过,若设置黑名单则只有请求来源于黑名单内才能通过 其余的请求通过.

案例:

        1.当客户端发起一个请求时,这个请会被sentinel拦截器进行拦截,拦截器回到用Request        originParser对象的ParseOrigin方法对请求进行解析

2.发送请求时所传递的参数名是什么,传给Origin

3返回值:代码如何写由业务决定,基于请求对象获取http请求行,请求头,请求体中的数据,这里解析后返回的数据,会于sentinel控制台的值进行对比然后基于黑白名单规则进行限制

 面试分析

如何理解Sentinel中的授权规则:        (对指定资源的访问给出的一种简易的授权策略)
Sentinel的授权规则是如何设计的:        (白名单和黑名单)
如何理解Sentinel中的白名单:           (允许访问的资源名单)
如何理解Sentinel中的黑名单:        (不允许访问的资源名单)、
Sentinel如何识别白名单和黑名单:        (在拦截器中通过调用RequestOriginParser对象的方法检测具体的规则)
授权规则中RequestOriginParser类的做用是什么:        对流控应用值进行解析,检查服务访问时传入的值是否与RequestOriginParser的parseOrigin方法返回值是否相同。)

LRU算法解决了什么问题:

        1.获取经常访问最频繁的内容

        2.获取最久不用的内容

        3.获取历史浏览记录


Sentinel中用到的设计模式:

        1.建造者模式

        2.工厂模式

        3.策略模式

        4.漏桶模式

        5.令牌桶模式

        6.单例模式

总结

        1.sentinel降级(熔断), 出现不稳定的系统服务时,暂时对此服务的访问

        2.sentinel实现热点参数限流, 热点视频,文章

        3.sentinel系统规则配置, 例如cpu使用率,QPS

        4.sentinel授权设置 , 黑名单和白名单 黑白名单设计又业务决定

常见问题分析

        1.如何理解熔断

        2.如何自定义熔断异常处理规则 (实现BlockExceptionHandler接口)

        3.如何理解热点参数 (频繁的访问数据,系统底层如何判断哪些数据是频繁访问-lru算法)

        4.系统规则是全局规则吗  是的

        5.授权规则需要自己写请求解析类吗  (需要,实现RequestOriginParser)

常见Bug分析

        注意注解和请求路径别写错了

        设置熔断时别用错名字

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5681609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存