详解sentinel使用

目录

1.概述

2.下载安装

3.应用托管

4.流量控制

4.1.流控规则

4.2.流控模式

4.2.1.直接模式

4.2.2.关联模式

4.2.3.链路模式

4.3.流控效果

4.3.1.预热

4.3.2.排队等待

5.降级

5.1.降级规则

5.2.降级策略

5.2.1.RT

5.2.2.异常比例

5.2.3.异常数


1.概述

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

hystrix的缺点:

  1. 没有自带监控平台,需要整合配置dashboard实现监控
  2. 没有图形化界面提供配置,只能在代码层编码实现流控、降级、熔断。

sentinel的优点:

  1. 单独一个组件,提供图形化界面
  2. 提供图形化界面进行流控、降级、熔断配置。

2.下载安装

下载地址:

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

sentinel分为两部分:

  1. 核心库,是个JAVA客户端,提供限流、降级、熔断等功能
  2. 控制台,基于SpringBoot实现的dashboard,完成监控功能。

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

页面地址:localhost:8080

默认用户名、密码:sentinel sentinel

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:8080port: 8719

懒加载:

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

4.流量控制

4.1.流控规则

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

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

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

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

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

4.2.流控模式

4.2.1.直接模式

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

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

4.2.2.关联模式

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

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

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

4.2.3.链路模式

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

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

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

4.3.流控效果

4.3.1.预热

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

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

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

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

4.3.2.排队等待

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

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

5.降级

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

5.1.降级规则

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

5.2.降级策略

5.2.1.RT

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

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

5.2.2.异常比例

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

5.2.3.异常数

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/20543.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直播 | SDS 容灾方案,让制品数据更安全

近日&#xff0c;腾讯 CODING WePack 制品管理系统 V1 以及腾讯 CODING DevOps 研发效能管理平台 V7 与 XSKY 星辰天合的统一数据平台 XEDP 及天合翔宇分布式存储系统完成互相兼容认证&#xff0c;在数据层面满足了共同客户敏捷开发的高可用建设合规要求。 联合解决方案可以帮…

【动手学深度学习】层和块

层和块 简单介绍 块&#xff1a;描述单个层&#xff0c;由多个层组成的组件或整个模型本身。使用块进行抽象的一个好处是可以将一些块组合成更大的组件&#xff0c;这一过程通常是递归的 简单入门 import torch from torch import nn from torch.nn import functional as F# …

【GitHub】腾讯这一款设计神器,开源了!PAG 动效组件

作为一个资深的互联网用户&#xff0c;我们经常会在各种产品上看到十分酷炫的动画效果。比如&#xff0c;短视频中有趣的虚拟场景、直播间粉丝打榜的 “火箭”、“轮船” 等等。 如今&#xff0c;优质的动效不仅可以使用户更容易地理解产品功能和操作方式&#xff0c;减少用户…

一套完全开源,支持多租户,界面配置单点的后端框架JVS

JVS的多租户体系统 在IT系统中&#xff0c;“租户”&#xff08;tenant&#xff09;通常用于指代一种多租户架构&#xff08;multi-tenancy&#xff09;&#xff0c;它是一种软件架构模式&#xff0c;允许多个用户或组织共享相同的应用程序或系统实例&#xff0c;但彼此之间的…

lwip-2.1.3自带的httpd网页服务器使用教程(一)从SD卡读取网页文件并显示

概述 本教程使用的单片机是STM32F103ZE&#xff0c;有线网口芯片为ENC28J60。 本教程里面的网页由于需要兼容Windows XP系统的IE8浏览器&#xff0c;所以采用HTML 4.01编写&#xff0c;不使用任何前端框架。笔者使用的网页设计软件是Adobe Dreamweaver CS3。 开发板PCB文件是公…

运维小知识(一)——centos系统安装(小白入门级)

目录 1.制作系统U盘 2.安装centos系统 3.系统配置 3.1【语言】配置​编辑 3.2【软件选择】配置 3.3【安装位置】配置 3.4【主机名、root密码、网络】配置 1.制作系统U盘 首先下载软件ventoy&#xff0c;制作系统U盘&#xff0c;买个新U盘。先在笔记本电脑安装ventoy软件&a…

产品经理学习画原型(三)

1.布尔运算的使用 合并必须选择两个及以上元件 合并后&#xff1a; 组合&#xff1a; 去除顶层&#xff1a;

常用API学习01(Java)

Math Math是一个帮助我们用于进行数学计算的工具类。私有化的构造方法&#xff0c;所有方法都是静态的。 Math类的常用方法&#xff1a; public static int abs(int a) 获取参数绝对值 public static double cell(double a) 向上取整 public static double floor(…

全链路Python环境迁移

全链路Python环境迁移 在当前的Python环境中&#xff0c;安装一些库以后&#xff0c;如果换了一套Python环境&#xff0c;难道再来一次不停的pip install&#xff1f;当然不是。 第一步&#xff0c;使用pip freeze&#xff08;冻结&#xff09;备份当前Python库的环境 pip f…

linux 服务器之间传输文件的方式

情景&#xff1a;有时迁移项目&#xff0c;一般人就想到需要在服务器下载到win本地电脑上面&#xff0c;再上传到目的服务器&#xff0c;这样若是文件大&#xff0c;下载的速度都足够让你歇一天了。遇到这问题&#xff0c;怎么解决呢&#xff1f; 方法1&#xff1a;scp 【优点…

《向量数据库指南》——传统数据库上的向量搜索插件

传统数据库上的向量搜索插件 很好,现在我们已经知道了向量搜索库和向量数据库之间的区别,下面让我们来看看向量数据库与向量搜索插件有何不同。 很多传统关系型数据库和搜索系统,如 ClickHouse 和 Elasticsearch,都包含内置的向量搜索插件。例如,Elasticsearch 8.0 包…

智慧班牌源码,融合人脸识别、即时通讯等技术,与智慧校园中各类系统互联互通

电子班牌系统又称之为智慧班牌&#xff0c;是当前校园数字化信息化建设、文化建设的主流&#xff0c;是校园日常工作安排、校园信息发布、班级文化风采展示、课堂交流的重要应用载体。智慧班牌系统在传统信息发布和校园文化展示功能基础上&#xff0c;融合了人脸识别、即时通讯…