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…...
讯飞智作 AI 配音技术浅析(三):自然语言处理
自然语言处理(NLP)是讯飞智作 AI 配音技术的重要组成部分,负责将输入的文本转换为机器可理解的格式,并提取出文本的语义和情感信息,以便生成自然、富有表现力的语音。 一、基本原理 讯飞智作 AI 配音的 NLP 技术主要包…...
wxWidgets生成HTML文件,带图片转base64数据
编译环境大家可以看我之前的文章,CodeBlocks + msys2 + wx3.2,win10 这里功能就是生成HTML文件,没用HTML库,因为是自己固定的格式,图片是一个vector,可以动态改变数量的。 效果如下: #include <wx/string.h> #include <wx/file.h> #include <wx/ima…...
python开发:爬虫示例——GET和POST请求处理
一、Get请求 import json import requests#输入示例:urlhttps://www.baidu.com #RequestHeader:F12标头-请求标头-原始-复制到这(忽略第一句) def GetRequest(url,RequestHeader""):try:dic{}RequestHeaderList RequestHeader.s…...
webrtc协议详细解释
### 一、概述与背景 WebRTC(Web Real-Time Communication)最早由 Google 在 2011 年开源,旨在为浏览器与移动端应用提供客户端直连(点对点)方式进行实时音视频及数据传输的能力。传统的网络应用在进行高实时性音视频通…...
leetcode——组合总和(回溯算法详细讲解)
在面试或刷题过程中,回溯算法是一个绕不开的核心算法之一。今天,我们来详细解析 LeetCode 39「组合总和」 问题,并用 Java 回溯 剪枝优化 来高效解决它!这篇文章不仅适合初学者,也适合希望提高回溯算法的朋友们。 给你…...
深入浅出DeepSeek LLM 以长远主义拓展开源语言模型
深入浅出地讲解DeepSeek LLM 以长远主义拓展开源语言模型 🌟 1. 什么是 DeepSeek LLM? 大家想象一下,你在游戏里要打造一个超级英雄角色,选择最强的装备、技能点和升级策略。那么,DeepSeek LLM 就是 AI 界的“超级英雄…...
【matlab基本使用笔记】
ctrl a i 代码格式化 fzero求非线性函数的根 arrayfun将函数应用于每个数组元素 format long长格式输出 format long g取消科学计数法 linspace logspace 一、界面使用 1.创建matlab脚本 利用.m后缀的脚本文件(又称为m文件)编程: 点击…...
实名制-网络平台集成身份证实名认证接口/身份证查询-PHP
在当今数字化快速发展的时代,线上平台的安全性和用户体验成为了衡量其成功与否的关键因素。其中,身份证实名认证接口的集成显得尤为重要,它不仅为用户提供了更加安全、可靠的网络环境,同时也增强了平台的信任度和合规性。 对于任…...
机器学习--python基础库之Matplotlib (1) 超级详细!!!
机器学习--python基础库Matplotlib 机器学习--python基础库Matplotlib0 介绍1 实现基础绘图-某城市温度变化图1.1绘制基本图像1.2实现一些其他功能 2 再一个坐标系中绘制多个图像3 多个坐标系显示-plt.subplots(面向对象的画图方法)4 折线图的应用场景 机器学习–python基础库M…...
Android 中实现 PDF 预览三种方式
目录 1. 使用第三方库 PdfRenderer(适用于 Android 5.0 及以上) 步骤:2. 使用第三方库 MuPDF步骤:3. 使用第三方库 PdfiumAndroid步骤: 1. 使用第三方库 PdfRenderer(适用于 Android 5.0 及以上)…...
10. k8s二进制集群之Kube Scheduler部署
在开始之前需要准备什么?创建kube-scheduler证书请求文件【即证书的生成⓵】根据上面证书配置文件生成kube-scheduler证书【即证书的生成⓶】创建与关联kube-scheduler配置文件(为后面生成系统服务做准备)创建kube-scheduler服务配置文件【准备系统服务⓵】创建kube-schedul…...
bat脚本实现自动化漏洞挖掘
bat脚本 BAT脚本是一种批处理文件,可以在Windows操作系统中自动执行一系列命令。它们可以简化许多日常任务,如文件操作、系统配置等。 bat脚本执行命令 echo off#下面写要执行的命令 httpx 自动存活探测 echo off httpx.exe -l url.txt -o 0.txt nuc…...
一文解释nn、nn.Module与nn.functional的用法与区别
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀零基础入门PyTorch框架_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 …...
Unity VideoPlayer播放视屏不清晰的一种情况
VideoPlayer的Rnder Texture可以设置Size,如果你的视屏是1920*1080那么就设置成1920*1080。 如果设置成其他分辨率比如800*600会导致视屏不清晰。...
Docker 数据卷(Volume)详细介绍
Docker 数据卷(Volume)详细介绍 1. 什么是 Docker 数据卷? Docker 数据卷(Volume)是一种用于 持久化数据 和 容器间数据共享 的机制。由于容器的存储是临时的,容器删除后其中的数据会丢失,因此…...
【玩转全栈】--创建一个自己的vue项目
目录 vue介绍 创建vue项目 vue页面介绍 element-plus组件库 启动项目 vue介绍 Vue.js 是一款轻量级、易于上手的前端 JavaScript 框架,旨在简化用户界面的开发。它采用了响应式数据绑定和组件化的设计理念,使得开发者可以通过声明式的方式轻松管理数据和…...
揭秘区块链隐私黑科技:零知识证明如何改变未来
文章目录 1. 引言:什么是零知识证明?2. 零知识证明的核心概念与三大属性2.1 完备性(Completeness)2.2 可靠性(Soundness)2.3 零知识性(Zero-Knowledge) 3. 零知识证明的工作原理4. 零…...
力扣 239.滑动窗口最大值
思路 滑动窗口 遍历 解题思路 基本思路:使用滑动窗口法遍历数组,动态维护当前窗口的最大值。 特殊情况:该方法有一个缺陷,如果出窗口的元素是当前窗口的最大值max时,接下来的窗口中的最大值就无法确定了,所…...
堆的实现——堆的应用(堆排序)
文章目录 1.堆的实现2.堆的应用--堆排序 大家在学堆的时候,需要有二叉树的基础知识,大家可以看我的二叉树文章:二叉树 1.堆的实现 如果有⼀个关键码的集合 K {k0 , k1 , k2 , …,kn−1 } ,把它的所有元素按完全⼆叉树…...
【3】高并发导出场景下,服务器性能瓶颈优化方案-文件压缩
使用EasyExcel导出并压缩文件是一种高效且常见的解决方案,尤其适用于需要处理大量数据的场景。 1. 导出多个Excel文件并压缩成ZIP文件的基本流程 (1)数据准备:从数据库或其他数据源获取需要导出的数据,并将其存储在Ja…...
Ubuntu20.04 本地部署 DeepSeek-R1
一、下载ollama 打开 ollama链接,直接终端运行提供的命令即可。如获取的命令如下: curl -fsSL https://ollama.com/install.sh | sh确保是否安装成功可在终端输入如下命令: ollama -v注意: 如遇到Failed to connect to github.…...
2025年2月6日笔记
第 12 届蓝桥杯 C 青少组中 / 高级组选拔赛( STEMA ) 2020 年 11 月 22 日 真题第一题 解题思路: 第一:因为有整数集合的求和字样(所以用for循环来做) 第二:题中让我们累加1到N,所…...
Linux: 网络基础
1.协议 为什么要有协议:减少通信成本。所有的网络问题,本质是传输距离变长了。 什么是协议:用计算机语言表达的约定。 2.分层 软件设计方面的优势—低耦合。 一般我们的分层依据:功能比较集中,耦合度比较高的模块层…...
CSS 背景与边框:从基础到高级应用
CSS 背景与边框:从基础到高级应用 1. CSS 背景样式1.1 背景颜色示例代码:设置背景颜色 1.2 背景图像示例代码:设置背景图像 1.3 控制背景平铺行为示例代码:控制背景平铺 1.4 调整背景图像大小示例代码:调整背景图像大小…...
GnuTLS: 在 pull 函数中出错。 无法建立 SSL 连接。
提示信息 [root@localhost ~]# wget https://download.docker.com/linux/static/stable/x86_64/docker-27.5.1.tgz --2025-02-06 12:45:34-- https://download.docker.com/linux/static/stable/x86_64/docker-27.5.1.tgz 正在解析主机 download.docker.com (download.docker.…...
ES6 const 使用总结
1. 声明不可变性 1.1 基本类型的不可变性 // 基本类型声明后不能修改 const name John; name Jane; // TypeError: Assignment to constant variableconst age 25; age 26; // TypeError: Assignment to constant variableconst isValid true; isValid false; // Ty…...
大学资产管理系统中的下载功能设计与实现
大学资产管理系统是高校信息化建设的重要组成部分,它负责记录和管理学校内所有固定资产的信息。随着信息技术的发展,下载功能成为提高资产管理效率的关键环节之一。 系统架构的设计是实现下载功能的基础。一个良好的系统架构能够确保数据的高效传输和存储…...
【华为OD机试python】日志采集系统【 E卷 | 2023 Q1 |100分】
目录 题目描述 输入描述 输出描述 示例1 输入输出示例仅供调试,后台判题数据一般不包含示例 说明 示例2 输入输出示例仅供调试,后台判题数据一般不包含示例 说明 解题思路 考点 代码 题目描述 日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采…...
园区网设计与实战
想做一个自己学习的有关的csdn账号,努力奋斗......会更新我计算机网络实验课程的所有内容,还有其他的学习知识^_^,为自己巩固一下所学知识。 我是一个萌新小白,有误地方请大家指正,谢谢^_^ 文章目录 前言 这个实验主…...
