Sentinel 知识总结

news2025/1/12 23:28:04

Sentinel 知识总结

Sentinel 是阿里巴巴开源的一个轻量级流量控制框架,主要用于保护系统稳定性和流畅性。它提供了多种流量控制策略,包括QPS限流、并发数限流、线程池限流等,并且支持集群限流。此外,Sentinel还提供了熔断降级、系统负载均衡等功能。

一、Sentinel 简介

1.1 什么是 Sentinel?

Sentinel(哨兵)是阿里巴巴开源的一个轻量级流量控制框架,主要用于保护系统稳定性和流畅性。它可以帮助您实现以下目标:

限制系统的QPS,防止系统过载;
提供实时的监控和告警功能;
提供熔断降级功能,防止系统雪崩;
提供系统负载均衡功能。

1.2 Sentinel 的特性

轻量级:Sentinel 的核心库只有200KB左右,对性能的影响非常小;
实时监控:Sentinel 可以实时监控系统的QPS、RT等信息,并提供实时告警功能;
多维度的流量控制:Sentinel 支持基于调用关系、资源、参数等多个维度的流量控制;
集群流量控制:Sentinel 支持集群限流,可以实现多台机器的统一流量控制;
熔断降级:Sentinel 提供了熔断降级功能,可以在服务不可用时自动降级,防止系统雪崩;
系统负载均衡:Sentinel 可以对系统的入口流量进行调度,实现系统的负载均衡。

二、Sentinel 架构解析

2.1 架构总览

Sentinel 的架构设计简洁清晰,主要分为核心库、Dashboard、规则中心等几个部分。

2.2 核心库

核心库是 Sentinel 的主要实现部分,包括流量控制、熔断降级等功能。核心库主要包括以下几个部分:

流量统计:通过滑动窗口算法来统计QPS、RT等指标;
流量控制:根据预先设定的规则和实时统计的指标来决定是否放行请求;
熔断降级:在服务不可用时自动降级,防止系统雪崩;
系统负载均衡:对系统的入口流量进行调度,实现系统的负载均衡。

2.3 Dashboard

Dashboard 是 Sentinel 的控制台,用于管理和监控 Sentinel 的各项功能。Dashboard 主要包括以下几个部分:

实时监控:实时展示系统的QPS、RT等指标;
规则管理:提供规则的增删改查功能,支持在线修改规则并实时生效;
集群管理:提供集群的管理功能,支持多台机器的统一管理。

2.4 规则中心

规则中心是 Sentinel 的规则存储组件,用于存储流量控制、熔断降级等规则。规则中心主要包括以下几个部分:

规则存储:提供规则的存储功能,支持多种存储方式;
规则推送:将规则推送到各个客户端,实现规则的统一管理。

三、Sentinel 快速入门

3.1 环境准备

首先需要安装 Java 环境,然后从 Sentinel 官网下载 Sentinel 的源码或者二进制包。

3.2 启动 Sentinel

解压下载好的 Sentinel 压缩包,进入 sentinel-dashboard/sentinel-dashboard-web 目录,执行 mvn clean package -Dmaven.test.skip=true 命令打包,然后在 target 目录下找到 sentinel-dashboard.jar,执行 java -jar sentinel-dashboard.jar 命令启动 Sentinel。

3.3 使用 Sentinel

在项目中引入 Sentinel 的依赖,然后通过 SphU.entry(resourceName) 方法来定义一个资源,并通过 SphU.entry(resourceName).setHandler(handler) 方法来设置处理函数。在处理函数中,可以通过 context.getCurEntry() 方法来获取当前请求的信息,并根据信息来进行流量控制、熔断降级等操作。

四、Sentinel 核心概念详解

4.1 资源

资源是 Sentinel 进行流量控制的最小单位,通常对应一个服务或一个方法。在 Sentinel 中,资源是通过 resourceName 来唯一标识的。

4.2 流量控制

流量控制是 Sentinel 的核心功能之一,主要用于限制系统的QPS,防止系统过载。在 Sentinel 中,流量控制是通过滑动窗口算法来实现的,可以精确地计算每个资源的QPS,并根据QPS来进行流量控制。

4.2.1流量控制设计理念
  • 资源的调用关系:例如资源的调用链路,资源和之源之间的关系
  • 运行指标:例如QPS、线程池、系统负载等。
  • 控制效果:例如直接限流、冷启动、排队等。
4.2.2流控规则介绍

参数:

  • 资源名:其实就是我们请求的资源路径
  • 针对来源:这个是此流控规则对应哪些微服务进行流控管理,一般填写调用方的微服务名称,多个用“,”分割
  • 阈值类型:一般有2种类型,QPS(每秒最大请求数)和线程数(并发线程数)
  • 单机阈值:单机状态下的最大限制值
  • 是否集群:根据实际情况选择
  • 流控模式:
    • 直接:当 api 调用达到限流条件的时,直接限流;
    • 关联:当关联的资源请求达到阈值的时候,限流自己;
    • 链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,则进行限流)。
  • 流控效果:
    • 快速失败:直接失败;
    • Warm Up:即预热/冷启动方式。当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过冷启动,让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个越热的时间,避免冷系统被压。
    • 排队等待:匀速排队,让请求匀速通过,阈值类型必须设置为 QPS,否则无效。
4.2.3流量控制模式

1)直接模式流量控制
在这里插入图片描述
2)关联模式流量控制
在这里插入图片描述
3)链路模式限流
在这里插入图片描述4)流控效果处理冷启动
在这里插入图片描述
在这里插入图片描述
5)流控效果排队等待
在这里插入图片描述
6)线程池隔离
在这里插入图片描述

4.3 熔断降级

4.3.1熔断降级机制

熔断降级是 Sentinel 的另一个核心功能,主要用于防止系统雪崩。在 Sentinel 中,熔断降级是通过熔断器模式来实现的,当某个资源出现异常时,会自动降级,避免影响其他资源。
断路器控制熔断和放行是通过状态机制来完成的:
在这里插入图片描述
在这里插入图片描述

4.3.2 熔断讲解策略

慢调用

业务的响应时长(RT)大于指定时长的请求认定为慢调用请求,在指定时间内,如果请求数量超过设定的最小数量,慢调用比例大于设定阈值,则触发熔断。
设置慢调用规则

在这里插入图片描述

异常比例、异常数

统计指定时间内的调用,如果调用次数超过指定请求数,并且出现一次里达到设定的比例阈值(或超过指定一常数),则触发熔断。
设置异常比例规则
在这里插入图片描述

五、Sentinel 高级特性剖析

5.1 集群流量控制

Sentinel 支持集群流量控制,可以实现多台机器的统一流量控制。在 Sentinel 中,集群流量控制是通过规则中心来实现的,可以将规则推送到各个客户端,实现规则的统一管理。

5.2 系统负载均衡

Sentinel 支持系统负载均衡,可以对系统的入口流量进行调度,实现系统的负载均衡。在 Sentinel 中,系统负载均衡是通过负载均衡器来实现的,可以根据系统的负载情况来动态调整流量分配。

六、Sentinel 生态集成

6.1 Spring Cloud Alibaba Sentinel

Spring Cloud Alibaba Sentinel 是 Spring Cloud 体系中的一部分,提供了与 Sentinel 集成的解决方案。通过使用 Spring Cloud Alibaba Sentinel,可以方便地将 Sentinel 作为 Spring Cloud 应用的流量控制和熔断降级组件使用。
以上就是全部内容,如果你有任何问题、意见或建议,都欢迎在评论中分享。让我们继续分享知识,共同成长,一起走向更加美好的未来。感谢你们的阅读,祝愿你们在未来的道路上一帆风顺!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习 | 掌握线性回归的实战技巧

目录 初识线性回归 损失和优化 欠拟合与过拟合 正则化线性模型 模型的保存与加载 初识线性回归 线性回归(Linearregression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。特点是:有一个自变量的情况称为单…

Linux实验记录:使用firewalld

前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注: RHEL8系统中集成了多款防火墙管理工具&#xf…

【百度Apollo】循迹自动驾驶:探索基于视觉感知的路径规划与控制技术

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

牛啊!能透视大模型内部结构的可视化工具!

哈喽,大家好。 今天给大家分享一个非常牛逼的可视化工具,可以清晰了解 GPT 大模型内部的结构。 哦,对了!给大家准备了国内用的 ChatGPT key,见评论区。 这个工具可以支持查看 GPT2 和 GPT3 的网络架构。 但能进行交互…

区间时间检索

参数形式 sql <if test"params.beginOrderDate ! null and params.beginOrderDate ! "><!-- 开始时间检索 -->AND DATEDIFF(day,#{params.beginOrderDate},b.order_date) > 0</if><if test"params.endOrderDate ! null and params.endO…

ov通配符ssl证书申请时间长吗

通配符SSL证书是SSL数字证书的一种&#xff0c;可以同时保护主域名以及同一个域名下的所有子域名。用户在申请通配符SSL证书时需要CA认证机构对提交的信息进行审核&#xff0c;审核时间根据证书的品牌、类型而变化。今天就随SSL盾小编了解OV通配符SSL证书申请时间。 1.通配符S…

蓝桥杯 第 2 场 小白入门赛

目录 1.蓝桥小课堂-平方和 2.房顶漏水啦 3.质数王国 4.取余 5.数学尖子生 6.魔术师 比赛链接 1.蓝桥小课堂-平方和 简单签到直接按照题目处理即可注意开long long void solve(){LL x; cin>>x;LL ans x*(x1)*(2*x1)/6;cout<<ans<<endl; } 2.房顶漏水…

STM32——DMA

STM32——DMA 1.DMA介绍 什么是DMA&#xff1f; DMA(Direct Memory Access&#xff0c;直接存储器访问) 提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通&#xff0c;而不需要依赖于CPU&#xff0c;在这个时间中&…

C语言应用实例——贪吃蛇

&#xff08;图片由AI生成&#xff09; 0.贪吃蛇游戏背景 贪吃蛇游戏&#xff0c;最早可以追溯到1976年的“Blockade”游戏&#xff0c;是电子游戏历史上的一个经典。在这款游戏中&#xff0c;玩家操作一个不断增长的蛇&#xff0c;目标是吃掉出现在屏幕上的食物&#xff0c…

shell - 免交互

一.Here Document 免交互 1. 交互的概念 交互&#xff1a;当计算机播放某多媒体程序的时候&#xff0c;编程人员可以发出指令控制该程序的运行&#xff0c;而不是程序单方面执行下去&#xff0c;程序在接受到编程人员相应的指令后而相应地做出反应。 对于Linux操作系统中&…

【RT-DETR有效改进】Bi-FPN高效的双向特征金字塔网络(附yaml文件+完整代码)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是BiFPN双向特征金字塔网络,其是一种特征融合层的结构,也就是我们本文改进RT-DETR模型中的Neck部分,它的主要思想是通过多层级的特征金字塔和双向信息传递来提高精度。本文给大家带…

零基础爬什么值得买的榜单——爬虫练习题目一(答一)

完蛋 蚌埠住了 引言日常吐槽言归正传 步骤一分析网页分析网络加载详细说说网络面板实际操作 测试代码测试结果知识点JS和Fetch/XHR是什么&#xff1f;有什么关联&#xff1f;网页数据的中文为什么是16进制数&#xff0c;以及如何判断&#xff1f; 结尾 引言 日常吐槽 今天剪辑…

力扣题目训练(5)

2024年1月29日力扣题目训练 2024年1月29日力扣题目训练345. 反转字符串中的元音字母349. 两个数组的交集350. 两个数组的交集 II96. 不同的二叉搜索树97. 交错字符串44. 通配符匹配 2024年1月29日力扣题目训练 2024年1月29日第五天编程训练&#xff0c;今天主要是进行一些题训…

回归预测 | Matlab基于OOA-LSSVM鱼鹰算法优化最小支持向量机的数据多输入单输出回归预测

回归预测 | Matlab基于OOA-LSSVM鱼鹰算法优化最小支持向量机的数据多输入单输出回归预测 目录 回归预测 | Matlab基于OOA-LSSVM鱼鹰算法优化最小支持向量机的数据多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基于OOA-LSSVM鱼鹰算法优化最小…

Windows断开映射磁盘提示“此网络连接不存在”,并且该磁盘直在资源管理器中

1、打开注册表编辑器 快捷键winR 打开“运行”&#xff0c; 输入 regedit 2、 删除下列注册表中和无法移除的磁盘相关的选项 \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\ 3、打开“任务管理器”&#xff0c;重新启动“Windows资源…

C++指针比较

内存中各个数据的存放方式。 数组str1、str2、str3、str4都是在栈中分配的&#xff0c;内存中的内容都为“abc”加一个“\0”&#xff0c;但是他们的位置是不同的&#xff0c;因此代码第15行和第16行输出的都是0. 指针str5、str6、str7、str8也是在栈中分配的&#xff0c;他们…

Shell中的awk

一、awk 1.1.awk工作原理 逐行读取文本&#xff0c;默认以空格或tab键为分隔符进行分隔&#xff0c;将分隔所得的各个字段保存到内建变量中&#xff0c;并按模式或者条件执行编辑命令。 awk倾向于将一行分成多个"字段"然后再进行处理。 awk信息的读入也是逐行读取…

Apple Vision Pro 评测:这款顶尖头显仅是对未来的初步探索

原文&#xff1a;Apple Vision Pro Review: The Best Headset Yet Is Just a Glimpse of the Future 作者&#xff1a;Joanna Stern 戴上 Apple Vision Pro 混合现实头显整整近 24 小时后&#xff0c;有几件事让我颇感意外&#xff1a; 我居然没感到恶心。我竟然高效完成了大…

springboot---四大核心

四大核心 Starter简介总结 Autoconfigure简介示例原理自定义starter打包实践 总结 CLIActuator Starter 简介 springboot项目中几乎项目依赖中基本上全是各种各样的starter, 那么到底什么是starter? starter是一组方便的依赖描述符&#xff0c;当我们使用它时&#xff0c;可…

推荐系统|排序_多目标模型

文章目录 四大特征用户特征物品特征统计特征场景特征 训练过程中会遇到的问题 四大特征 ID相当于是人拥有的身份证&#xff0c;能够唯一确定出一个人 用户特征 主要指的是用户ID和用户画像 物品特征 主要是指物品ID和物品画像以及物品持有人。 统计特征 统计特征既包括对…