Sentinel的安装和做限流的使用
一、安装
Release v1.8.3 · alibaba/Sentinel · GitHubA powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件) - Release v1.8.3 · alibaba/Sentinelhttps://github.com/alibaba/Sentinel/releases/tag/1.8.3https://github.com/alibaba/Sentinel/releases/tag/1.8.3https://github.com/alibaba/Sentinel/releases/tag/1.8.3
https://github.com/alibaba/Sentinel/releases/tag/1.8.3
打开网址,可以看到下面有一个1.8.3的版本

下载完之后放在自己指定的文件夹里

然后在上面输入cmd打开cmd控制台,进行启动

java -Dserver.port=8888 -jar sentinel-dashboard-1.8.1.jar
这里的-Dserver.port=8888意味着设置了一个名为server.port的系统属性,其值为8888。这个系统属性通常被Java应用程序用来指定其运行时的服务器端口号。

二、客户端访问
浏览器访问:
127.0.0.1:8888(ip+端口号,端口号为刚刚设置的8888)
密码默认都是sentinel

输入账号和密码之后

看到这页面说明安装成功!
三、微服务整合sentinel
(1)引入依赖
<!--引入sentinel客户端依赖-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>${spring-cloud-alibaba.version}</version>
</dependency>
(2)修改配置
server:port: 9090
spring:cloud:sentinel:transport:dashboard: 127.0.0.1:8888 #sentinel控制台所在的ip和端口
(3)浏览器访问
sentinel属于懒加载模式,其核心思想是仅在需要时才加载资源。具体来说,在Sentinel中,懒加载模式意味着只有当一个资源(如API接口)被实际访问时,Sentinel才会开始对该资源进行监控和限流等策略的配置。
所以我们得需要先访问一下接口,才能加载进去
@RestController
@RequestMapping("/test")
public class UserController {//这边为了做测试,就简单的写一个test接口@RequestMapping("/test1")public String test1(){return "test1";}//多添加一个hello的测试接口,下面会用到@RequestMapping("/hello")public String hello(){return "hello";}
}
重启服务器,在浏览器访问一下我们刚刚写的接口

访问成功之后,重新刷新一下sentinel

点击打开就能看见相关信息

四、sentinel做限流
对资源进行设置限流规则
资源:ip,变量,参数, url==》一般用url做限流规则
1、如何做限流规则


新增完之后就可以看见新添的

这边用jmeter进行压力测试
可以看到,假设我们一秒钟请求10个,则只有五个通过,因为我们上面进行限流,一秒钟最多五个请求
这个就是直接模式
2、三种流控模式
直接,关联,链路


(1)直接模式
刚刚用的就是直接的流控模式
(2)关联模式(更多使用在同一个微服务)
这边我们举个例子来理解关联模式
比如我们有一个订单的微服务
订单微服务 ==》资源访问数100
--创建订单 ==》它90
--查询订单 ==》它只能10
设置:流控模式换成关联模式,新增一个hello的接口,来进行测试

测试:

当它测试数据过多的时候,访问跟它相关联的/test/test1

(3)链路模式(更多使用在不同的微服务)
资源A可以访问资源B A-》B
资源C也可以访问B C-》B
举例场景:
创建订单===》调用商品
查询订单===》调用商品
这边涉及到微服务之间的相互调用,则需要写接口,修改配置
订单调用商品,用户调用商品,形成一个链路模式,然后就先写一下不同微服务之间的调用,如果在不同的微服务下,订单是个微服务,就要设置让openfeign接受sentinel,就要修改配置(修改两个),随后运行项目,让sentinel里面有对应的微服务的方法,并且设置限流模式为链路模式,进行限流,设置参数,然后就用jmeter进行压力测试,使用json断言来判断,查看结果树,看会不会影响到 ,这边就不做演示,思路大概是这样子的
#修改配置
spring:cloud:sentinel:transport:dashboard: 127.0.0.1:8888 #sentinel控制台所在的ip和端口web-context-unify: false #关闭,使得链路跟踪不会受到影响feign:sentinel:enabled: true #让openfeign支持sentinel


五、拓展
(1)什么是sentinel,核心功能是什么?
Sentinel 是面向分布式系统的流量控制组件,核心功能包括流量控制、熔断降级、系统自适应保护、实时监控等,目标是保障微服务的稳定性。
(2)Sentinel 和 Hystrix 的主要区别是什么?
Sentinel 更强调流量控制(QPS/并发量)和实时监控,支持动态规则配置;Hystrix 侧重于熔断和线程隔离,但已进入维护模式。Sentinel 的流量控制模型更灵活(如直接拒绝、Warm Up、匀速排队)。
(3)为什么要使用sentinel?
流量控制:Sentinel可以进行限流操作,从而防止系统被过载压垮。这对于保护系统在高并发场景下的稳定性至关重要。
熔断降级:Sentinel通过熔断机制,可以在检测到某个服务出现不稳定表现时(如请求响应时间长或异常比例升高),自动对该服务的调用进行限制,让请求快速失败,从而避免影响到其他服务,保证系统的整体稳定性。
实时监控与报警:Sentinel提供了实时的监控功能,可以在控制台中看到接入应用的单台机器秒级数据,甚至500台以下规模的集群的汇总运行情况。同时,根据预设的规则,Sentinel还可以对系统的异常情况进行实时报警,及时通知相关人员进行处理,避免问题扩大化。
相关文章:
Sentinel的安装和做限流的使用
一、安装 Release v1.8.3 alibaba/Sentinel GitHubA powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件) - Release v1.8.3 alibaba/Sentinelhttps://github.com/alibaba/Senti…...
四柱预测学
图表 后天八卦 十二地支不仅代表了时间,还代表了方位。具体来说: 子:代表正北方丑寅:合起来代表东北方卯:代表正东方辰巳:合起来代表东南方午:代表正南方未申:合起来代表西南方酉:代表正西方戌亥:合起来代表西北方四季-五行-六神…...
【个人开发】macbook m1 Lora微调qwen大模型
本项目参考网上各类教程整理而成,为个人学习记录。 项目github源码地址:Lora微调大模型 项目中微调模型为:qwen/Qwen1.5-4B-Chat。 去年新发布的Qwen/Qwen2.5-3B-Instruct同样也适用。 微调步骤 step0: 环境准备 conda create --name fin…...
sqli-labs靶场实录(二): Advanced Injections
sqli-labs靶场实录: Advanced Injections Less21Less22Less23探测注入点 Less24Less25联合注入使用符号替代 Less25aLess26逻辑符号绕过and/or过滤双写and/or绕过 Less26aLess27Less27aLess28Less28aLess29Less30Less31Less32(宽字节注入)Less33Less34Le…...
Linux系统 环境变量
环境变量 写在前面概念查看环境变量main函数的参数argc & argvenv bash环境变量 写在前面 对于环境变量,本篇主要介绍基本概念及三四个环境变量 —— PATH、HOME、PWD。其中 PATH 作为 “ 敲门砖 ”,我们会更详细讲解;理解环境变量的全局…...
机器学习-线性回归(最大似然估计)
机器学习任务可以分为两类: 一类是样本的特征向量 𝒙 和标签 𝑦 之间存在未知的函数关系𝑦 h(𝒙),另一类是条件概率𝑝(𝑦|𝒙)服从某个未知分布。最小二乘法是属于第一类,…...
【信息系统项目管理师-案例真题】2017上半年案例分析答案和详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一【问题1】8 分【问题2】4 分【问题3】8 分【问题4】5 分试题二【问题1】10 分【问题2】8 分【问题3】6 分【问题4】5 分试题三【问题1】5 分【问题2】7 分【问题3】6 分【问题4】3 分试题一 阅读下列说明…...
CSP晋级组比赛生成文件夹与文件通用代码Python
快速生成文件夹与文件的脚本 import sys import osmyfiles sys.argv[1::] for f in myfiles:os.mkdir(f)os.system(f"touch {f}/{f}.in")os.system(f"touch {f}/{f}.out")os.system(f"touch {f}/{f}.cpp")with open("template.cpp",…...
正则表达式进阶(二)——零宽断言详解:\b \B \K \z \A
在正则表达式中,零宽断言是一种非常强大的工具,能够在不消费字符的情况下对匹配位置进行约束。除了环视(lookahead 和 lookbehind)以外,还有一些常用的零宽断言,它们用于处理边界、字符串的开头和结尾等特殊…...
Android 中实现 PDF 预览三种方式
目录 1. 使用第三方库 PdfRenderer(适用于 Android 5.0 及以上) 步骤:2. 使用第三方库 MuPDF步骤:3. 使用第三方库 PdfiumAndroid步骤: 1. 使用第三方库 PdfRenderer(适用于 Android 5.0 及以上)…...
尚硅谷课程【笔记】——大数据之Zookeeper【二】
课程视频:【尚硅谷Zookeeper教程】 四、Zookeeper实战 4.1分布式安装部署 1. 集群规划 在Hadoop102、Hadoop103和Hadoop104三个节点上部署Zookeeper 2. 解压安装 1)解压Zookeeper.tar.gz到指定目录 tar -zxvf zookeeper-3.7.2.tar.gz -C /opt/mod…...
CodeGPT + IDEA + DeepSeek,在IDEA中引入DeepSeek实现AI智能开发
CodeGPT IDEA DeepSeek,在IDEA中引入DeepSeek 版本说明 建议和我使用相同版本,实测2022版IDEA无法获取到CodeGPT最新版插件。(在IDEA自带插件市场中搜不到,可以去官网搜索最新版本) ToolsVersionIntelliJ IDEA202…...
postgresql 游标(cursor)的使用
概述 PostgreSQL游标可以封装查询并对其中每一行记录进行单独处理。当我们想对大量结果集进行分批处理时可以使用游标,因为一次性处理可能造成内存溢出。 另外我们可以定义函数返回游标类型变量,这是函数返回大数据集的有效方式,函数调用者…...
计算机组成原理——指令系统(六)
在时间的长河中,我们都是追梦人,脚下的每一步都在刻画未来的模样。无论世界如何变幻,心中的那团火焰都不应熄灭。它是你突破黑暗、迎接黎明的力量源泉。每一个不曾起舞的日子,都是对生命的辜负;每一次跌倒后的站起&…...
Python设计模式 - 原型模式
定义 原型模式是一种创建型设计模式,它可以通过复制现有对象来创建新对象,而不是直接实例化新的对象。 结构 抽象原型(Prototype):声明 clone() 方法,以便派生类实现克隆自身的能力。具体原型(…...
金和OA C6 DownLoadBgImage任意文件读取漏洞
金和OA C6 DownLoadBgImage任意文件读取漏洞 漏洞描述 金和C6数据库是一款针对企业信息化管理而设计的高级数据库管理系统,主要应用于企业资源规划(ERP)、客户关系管理(CRM)以及办公自动化(OA)…...
【stm32学习】STM32F103实操primary(FlyMCU)
github插入图片实在是太难用了,暂时懒得学就先用CSDN吧hh 一、在设备管理器下,找到单片机,并检查与FlyMCU-搜索端口 显示的是否一致 二、在搜索串口右面的栏里选中该Port,波特率选中115200 三、选择文件夹中的.hex文件࿰…...
如何将Excel的表格存为图片?
emmm,不知道题主具体的应用场景是什么,就分享几个我一般会用到的场景下奖excel表格保存为图片的技巧吧! 先来个总结: 方法 适用场景 画质 操作难度 截图(WinShiftS) 快速保存表格,方便粘贴…...
51单片机之使用Keil uVision5创建工程以及使用stc-isp进行程序烧录步骤
一、Keil uVision5创建工程步骤 1.点击项目,新建 2.新建目录 3.选择目标机器,直接搜索at89c52选择,然后点击OK 4.是否添加起吊文件,一般选择否 5.再新建的项目工程中添加文件 6.选择C文件 7.在C文件中右键,添加…...
AUTOSAR面试题集锦(1)
最基础概念 什么是AUTOSAR?AUTOSAR到底做了什么? AUTOSAR,即汽车开放系统架构,是一套专门用于汽车的开放性的框架和行业标准,旨在标准化汽车开发的流程。 AUTOSAR 通过标准化软件接口、交换格式和方法论等内容,主要实现以下几个目标: 1. 使软件和硬件彼此独立,让应…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
