Sentinel基础知识

什么是Sentinel

alibaba的熔断器组件,用于服务熔断降级

微服务时代,各个微服务之间相互调用,如果有单个服务出现问题,整个服务可能会出现雪崩

sentinel中的基本概念

1、资源

资源是 Sentinel 的关键概念。它可以是 Java 应用程序中的任何内容,例如,由应用程序提供的服务,或由应用程序调用的其它应用提供的服务,甚至可以是一段代码。

只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。大部分情况下,可以使用方法签名,URL,甚至服务名称作为资源名来标示资源。

2、规则

围绕资源的实时状态设定的规则,可以包括流量控制规则、熔断降级规则以及系统保护规则。所有规则可以动态实时调整。

从sentinel的面板看 有这些规则可以设置

在这里插入图片描述
比较常用的就是流控和熔断

什么是流量控制?

流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意时间到来的请求往往是随机不可控的,而系统的处理能力是有限的。我们需要根据系统的处理能力对流量进行控制

流量控制有以下几个角度:
资源的调用关系,例如资源的调用链路,资源和资源之间的关系;
运行指标,例如 QPS、线程池、系统负载等;
控制的效果,例如直接限流、冷启动、排队等。
Sentinel 的设计理念是让您自由选择控制的角度,并进行灵活组合,从而达到想要的效果。

什么是熔断降级

当调用链路中某个资源出现不稳定,例如,表现为 timeout,异常比例升高的时候,则对这个资源的调用进行限制,并让请求快速失败,避免影响到其它的资源,最终产生雪崩的效果。

Sentinel各种规则的使用

1、流控规则

监控应用流量的QPS(每秒查询率)或并发线程数等指标,当达到指定的阈值对流量进行控制,避免被瞬时的高流量冲垮,保证应用的高可用性
在这里插入图片描述
资源名:默认是请求路径
针对来源:对哪个微服务进行限流,默认default即不区分来源
QPS:调用该接口的QPS达到阈值的时候进行限流
线程数:当调用该接口的线程数达到阈值的时候进行限流

流控模式:
在这里插入图片描述

sentinel有三种流控模式:
1、直接:接口达到限流条件时,开启限流

2、关联:当关联的资源达到限流条件时,开启限流(适合做应用让步)
例1:两个资源之间具有资源争抢或者依赖关系,这两个资源便具有了关联。比如对数据库同一个字段的读操作和写操作存在争抢,读的速度过高会影响写的速度,写的速度过高会影响读的速度。如果放任读写操作争抢资源,则争抢本身带来的开销会降低整体的吞吐量。

例2:下订单和支付接口,支付接口故障,需要在下订单时就限流失败

3、链路:当从某个接口过来的资源达到限流条件时,开启限流
例:/trace2接口中调用了资源tranceService 设置如下 则调用/trace2时会有流控效果
在这里插入图片描述
流控效果:
1、快速失败:直接失败,抛出异常
2、warm up:从开始阈值到最大QPS阈值有一个缓冲阶段,一开始的阈值时最大QPS阈值的1/3,然后慢慢增长,知道最大阈值
3、排队等待:让请求以均匀的速度通过

2、降级

降级规则即满足条件时对服务进行降级,sentinel提供三个衡量条件

慢调用比例
选择以慢调用比例作为阈值,需要设置允许的慢调用RT(即最大的响应时间),请求的响应时间大于该值统计为慢调用。当单位统计时长内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN状态),若接下来的一个请求响应时间小于设置的慢调用RT则结束熔断,若大于设置的慢调用RT则会被再次熔断

案例:

在这里插入图片描述
上面配置的熔断规则的意思是:如果在【1000】ms内,请求数超过【1】,响应时间超过【900】ms的请求比例大于【0.1】,则熔断10s,接下来的10s内都不会调用真实方法,走降级方法

异常比例
当单位统计时长内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态,若接下来的一个请求成功完成则结束熔断,否则会再次被熔断。
异常比例的阈值范围是[0.0,1.0],代表0% - 100%

异常数
当单位统计时长内的异常数目超过阈值后自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态。若接下来的一个请求成功完成,则结束熔断,否则会再次被熔断。

3、热点

热点是经常访问的数据,很多时候希望统计某个热点数据中访问频次最高的top k数据,并对其访问进行限制

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值