详解sentinel使用

简介: 1.概述sentinel,springcloud alibaba中对标springcloud Netflix中的hystrix的组件,是一个强大的分布式系统保护工具,通过流量控制、熔断降级和系统负载保护等机制,保障了微服务架构的稳定性和可用性。它是Spring Cloud生态系统中的重要组件之一,被广泛应用于微服务开发和运维中。阿里每年的“双十一”,sentinel就是提供分布式保护机制的核心组件之一。

1.概述

sentinel,springcloud alibaba中对标springcloud Netflix中的hystrix的组件,是一个强大的分布式系统保护工具,通过流量控制、熔断降级和系统负载保护等机制,保障了微服务架构的稳定性和可用性。它是Spring Cloud生态系统中的重要组件之一,被广泛应用于微服务开发和运维中。阿里每年的“双十一”,sentinel就是提供分布式保护机制的核心组件之一。


hystrix的缺点:


没有自带监控平台,需要整合配置dashboard实现监控

没有图形化界面提供配置,只能在代码层编码实现流控、降级、熔断。

sentinel的优点:


单独一个组件,提供图形化界面

提供图形化界面进行流控、降级、熔断配置。

2.下载安装

下载地址:


https://github.com/alibaba/Sentinel/releases


sentinel分为两部分:


核心库,是个JAVA客户端,提供限流、降级、熔断等功能

控制台,基于SpringBoot实现的dashboard,完成监控功能。

两者都集成在一个jar包中,运行jar包即可运行起两块功能。

d9bbe93d5a2b4685acf24b530b1c52f3.png

页面地址:localhost:8080

默认用户名、密码:sentinel sentinel

22d4880c7fba4a46a3e1c9f9b4fee97d.png

3.应用托管

在应用一侧引入sentinel的依赖,配置好sentinel的地址以及与sentinel的通信端口,即可将应用托管给sentinel进行监控。

依赖:

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
   <version>${version}</version>
</dependency>

配置:


spring:

 cloud:

   sentinel:

     transport:

       dashboard: 127.0.0.1:8080

       port: 8719

懒加载:


sentinel采用懒加载机制,未被访问过的服务不会被监控,只有被访问过的服务才会被纳入监控。

3d30aca775934ca1bd85a46ccfcb9f58.png

4.流量控制

4.1.流控规则

在sentinel的流控规则中可以进行流控的规则设置。

资源名:URL,要求必须全局唯一。

阈值类型:限制线程数?限制每秒访问数?

单机阈值:每台机器的访问阈值

流控模式、流控效果:设置响应的方式。

a47d1185406a48278a330367c4783e95.png

4.2.流控模式

4.2.1.直接模式

beff9f62541d4c8bb1541b35fd8c88fb.png

超过阈值后会直接给出一个处理方式:

此处设置的是“快速失败”,直接给出一个响应。

38e76ec004f447c09265e6b71a9cecce.png

4.2.2.关联模式

当自己所关联的资源到达阈值以后,限流自己。

即当与A关联的资源B达到阈值以后,限流A。

防止连坐效应造成关联业务宕机。

20fcd04aab4d45a1a40ec36a54cceeac.png

4.2.3.链路模式

链路模式需要配合簇点链路一起使用,

簇点链路里有一条默认的链路,链路下有当前系统中的所有访问路径。

96249204e8e44883b47b772949a39216.png

链路模式即是除了通过资源名的访问会被流控以外,链路中的其他服务调用流控的资源名也会受到所配置的流控规则所限制。

3133fb614afa4b75a30cf6b7498724c0.png

4.3.流控效果

4.3.1.预热

预热(warm up),即预热/冷启动,


即不直接让系统去面对极限流量,而是当流量在达到所设定阈值的一个百分比时,系统拒绝所有流量,用一段时间来热身,热身完毕后再去面对极限流量。


这个阈值的百分比和一个系数相关——冷却因子(cold  factor)。冷却因子默认为3,即当瞬间流量达到阈值的1/3的位置时,系统会在后续的一段时间拒绝掉后续的流量(拒接的形式是直接返回一个响应),然后在这段时间里“预热”,预热完毕后再去处理极限流量。


这段“预热时间”可以动态配置,单位:秒。

e8ae3434efe44ecf963d1b15d68c2115.png

4.3.2.排队等待

排队等待,让并发过来的请求排队匀速通过,适用于间隔性的突发流量峰值。涌过来的请求积压排队,利用间隔时间来逐渐放行。间隔时间默认500毫秒。

c8dd622b3e3243d9901c0363f18ac9f6.png

排队等待只处理QPS,每次只放行阈值数量的请求,超时未处理的请求直接返回响应,超时时间单位为毫秒。

5.降级

sentinel将熔断和降级揉在了一起,直接用熔断的方式来实现了降级。

5.1.降级规则

在sentinel的降级规则中可以进行降级的规则设置

cfb4ac9ce76e4f418dc8fb55dca48c8f.png

5.2.降级策略

5.2.1.RT

RT(新版本改名叫做“慢比列调用”),平均响应时间。

492b477bac364891b420f34c08f00a41.png当一秒内有5个以上的请求进来,降级规则被唤醒,当进来的所有请求中有超过30%的请求响应时间超过1000ms,触发服务熔断,打开断路器,熔断时长20秒,此期间内对还想进来的请求快速返回一个响应,20秒以后,向服务发送探测信号,尝试闭合断路器。

5.2.2.异常比例

image.png

1秒内超过3个请求进来,唤醒降级规则,进来的请求里有超过30%的请求产生异常,触发熔断,断路器打开,熔断时长10秒,此期间内对还想进来的请求返回一个快速响应,10秒以后重新探测,尝试闭合断路器。

5.2.3.异常数

c648caeb592c40f491de09757501f6ae.png

1分钟内超过3个请求进来,触发降级策略,所有请求中异常数如果超过阈值则触发熔断。

目录
相关文章
|
7月前
|
负载均衡 监控 Java
Sentinel介绍与使用
Sentinel介绍与使用
414 3
|
7月前
|
算法 网络协议 安全
深入理解Sentinel系列-1.初识Sentinel
深入理解Sentinel系列-1.初识Sentinel
319 1
深入理解Sentinel系列-1.初识Sentinel
|
监控 Dubbo Java
超详细的Sentinel入门
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
超详细的Sentinel入门
|
监控 Dubbo Java
Sentinel介绍及搭建
Sentinel介绍及搭建
329 0
|
SpringCloudAlibaba 双11 Sentinel
七.SpringCloudAlibaba极简入门-Sentinel熔断
在上一章节我们探讨了Sentinel的流控(限流)功能,Sentinel除了流控还提供了服务熔断和降级机制,服务之间的调用关系错综复杂,微服务的调用链上的某些服务资源不稳定(宕机,异常,超时)可能会导致可能请求的失败和请求的堆积,调用链产生连锁反应可能会导致整个微服务架构瘫痪。服务熔断降级机制是保障高可用的重要措施之一。
|
监控 Java API
Sentinel
Sentinel
|
监控 Dubbo Java
【Sentinel】初识Sentinel
【Sentinel】初识Sentinel
442 0
【Sentinel】初识Sentinel
|
算法 Sentinel
Sentinel学习二
如果我们不对Sentinel的异常提示做自定义,那么此时的提示是非常不详细的。如果做了自定义,就可以看到下面自定义的提示。sentinel提供了@SentinelResource注解帮助我们来实现自定义的熔断限流后的自定义方法处理,可以根据sentinel的aop可以看到处理的example,从而更为清晰的认识sentinel强大的功能。
119 0
Sentinel学习二
|
存储 监控 Dubbo
Sentinel 介绍| 学习笔记
本次课程主要分为三大部分,在这一部分中,将会介绍 Sentinel 诞生的背景、增长的核心特性。Sentinel 的完善的开源生态,以及流控降级组件对比。在第二部分中,会演示 Sentinel 的一些非常基本的使用场景,包括与 Spring cloud 的外边应用结合,Spring cloud 网关结合以及与 Dubbo 服务进行结合的演示。在第三部分中,介绍一下阿里云应用高可用服务 AHAS 的使用,以及如何快速的接入阿里云 AHAS 真正的流控降级。
Sentinel 介绍| 学习笔记
|
监控 算法 网络协议
Sentinel vs Hystrix 限流对比,到底怎么选?
Sentinel vs Hystrix 限流对比,到底怎么选?
808 0
Sentinel vs Hystrix 限流对比,到底怎么选?