sentinel网关限流配置及使用
sentinel控制台源码:https://download.csdn.net/download/yixin605691235/89543923
sentinel控制台jar包:https://download.csdn.net/download/yixin605691235/89543931

不同环境直接修改jar包中的application.yml文件中的nacos地址就可以了。
一、网关限流配置及使用
1、nacos配置
新增文件gdebs-gateway-sentinel.yml、gdebs-gateway-sentinel-dynamic.properties
spring:cloud:sentinel:eager: true#配置网关scg:fallback:content-type: application/json# 模式 response、redirectmode: response# 响应状态码response-status: ${sentinel.renturn.code}# 响应信息response-body: ${sentinel.renturn.msg}transport:dashboard: ${sentinel.dashboard.host}:${sentinel.dashboard.port}filter:enabled: falseip: gdebs-gateway-service# 控制台数据持久化配置datasource:ds1:nacos:server-addr: ${sentinel.nacos.host}:${sentinel.nacos.port}username: ${sentinel.nacos.name}password: ${sentinel.nacos.pwd}namespace: ${sentinel.nacos.namespace}group-id: ${sentinel.nacos.group}data-id: ${spring.application.name}-sentinel-flow-rules.jsondata-type: jsonrule-type: gw-flowds2:nacos:server-addr: ${sentinel.nacos.host}:${sentinel.nacos.port}username: ${sentinel.nacos.name}password: ${sentinel.nacos.pwd}namespace: ${sentinel.nacos.namespace}group-id: ${sentinel.nacos.group}data-id: ${spring.application.name}-sentinel-api-rules.jsondata-type: jsonrule-type: gw-api-groupgateway:# spring cloud gateway 路由配置方式discovery:locator:#表明gateway开启服务注册和发现的功能enabled: true#将请求路径上的服务名配置为小写lower-case-service-id: true
# sentinel控制台信息
sentinel.dashboard.host=xxxx
sentinel.dashboard.port=xxx# sentinel返回信息
sentinel.renturn.msg= 对不起,已经被限流了!!!
sentinel.renturn.code= xxx# sentinel数据持久化配置
sentinel.nacos.host=xxx.xx.xx.xx
sentinel.nacos.port=xxxx
sentinel.nacos.name=xx
sentinel.nacos.pwd=nacxxos
sentinel.nacos.namespace=xxx
sentinel.nacos.group=xxx
spring.application.name=xxx
2、网关应用增加依赖:
<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId></dependency><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-spring-cloud-gateway-adapter</artifactId></dependency>
3、控制台配置限流规则
http://localhost:8081/#/login
帐号/密码:sentinel/sentinel
此处注意:sentinel控制台采用懒加载,因此需要现有请求才能看到链路

API管理:可以根据请求路径来设置API组

设置网关可以按照API分组设置,也可以设置app应用的总体限流


流控方式有快速失败和匀速排队两种:
快速失败可以设置Burst size,这是一个突刺个数,如果QPS设置为1,突刺数设置为10 ,当高并发请求时,首先能消耗的请求数是11个,超过11则拒绝,后续还是可通过一个请求。
匀速排队可以设置等待时长毫秒,当高并发请求超过QPS时,进入等待状态,如果超过等待时长则拒绝。


二、资源和规则配置说明
官网详细说明:basic-api-resource-rule | Sentinel
1、资源定义
主流框架默认适配:系统当前使用的springcloud本身支持请求链路
另外一种方式通过注解引用的方式:@SentinelResource
注解需要增加一个依赖
<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>1.8.6</version>
</dependency>
@RestController
@RequestMapping(value = "/sentinel")
@Api(value = "sentinel", tags = {"testController"})
public class TestController {@SentinelResource(value = "tesSentinel" , blockHandler = "myBlockHander")@PostMapping("/tesSentinel")public String tesSentinel() {return "1";}// 限流或者熔断之后执行的方法public String myBlockHander(BlockException blockException){if(blockException instanceof FlowException){// 限流异常return "您被限流了";}else if(blockException instanceof DegradeException){// 熔断异常return "您被熔断了";}return "被限制了";}
}
2、规则定义
可以通过代码设置规则,也可以通过控制台设置规则
private void initFlowQpsRule() {List<FlowRule> rules=new ArrayList<>();System.out.println("限流初始化规则");// 定义一个限流规则FlowRule flowRule=new FlowRule();flowRule.setResource("tesSentinel"); // 资源名|必须参数flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS); // 限流指标:QPS/线程数 |必须参数flowRule.setCount(1); // 限流数量(上一步 QPS 或线程数的值) |必须参数flowRule.setStrategy(RuleConstant.STRATEGY_DIRECT); //调用关系限流策略【非必须设置】flowRule.setControlBehavior(RuleConstant.CONTROL_BEHAVIOR_RATE_LIMITER); // 流控效果【非必须设置】 排队等待flowRule.setMaxQueueingTimeMs(1000); // 等待超时时间flowRule.setClusterMode(false); // 是否集群限流【非必须设置,默认非集群】rules.add(flowRule);FlowRuleManager.loadRules(rules);}
提供的关联流控和链路流控可以应用到一些特殊的业务场景的流控
相关文章:
sentinel网关限流配置及使用
sentinel控制台源码:https://download.csdn.net/download/yixin605691235/89543923 sentinel控制台jar包:https://download.csdn.net/download/yixin605691235/89543931 不同环境直接修改jar包中的application.yml文件中的nacos地址就可以了。 一、网关限…...
# 如何解决 App Store 审核中的 4.3(a) 问题:Guideline 4.3(a) - Design - Spam
如何解决 App Store 审核中的 4.3(a) 问题:Guideline 4.3(a) - Design - Spam 4.3(a) 审核问题是指:你的应用与其他开发者提交的应用在二进制文件、元数据和/或概念上存在相似之处,仅有微小差别。这通常会导致你的应用被视为垃圾应用而被拒绝…...
最长上升子序列(LIS)
最长上升子序列(最长递增子序列,LIS) 给定长度为 n n n的序列 v v v,求此序列中严格递增(上升)的子序列长度最大值(子序列可由原序列中不连续的元素构成) 朴素DP( O ( n 2 ) O(n^2) O(n2)) 闫氏DP分析法 状态表示: 集合 d p dp dp:所有满足…...
自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection
文章目录 1. 摘要概述2. 背景介绍3. 方法3.1 俯视图投影3.2 网络结构3.2.1 投影变换层3.2.2 投影变换层3.2.3 道路投影预测分支 3.3 车道预测头3.4 训练和真实值关联 4. 实验4.1 合成 3D 车道数据集4.2 真实世界 3D 车道数据集4.3 评估结果4.4 评估图像仅车道检测 5. 总结和讨论…...
手工创建 postgres kamailio 数据库
测试环境如下: postgres server 16: ip 地址为 192.168.31.100,用户 postgres 的密码为 ****** kamailio v5.7.5: ip 地址为 192.168.31.101 1.1. 创建 kamailio 用户和 kamailio 数据库 ssh 登陆 kamailio (192.168.31.101)&a…...
装饰设计模式
装饰设计模式应用在IO流上面可以得到体现 装饰模式指的是在不改变原类, 不使用继承的基础上,动态地扩展一个对象的功能。 原来的inputstream已经可以读取数据了,但是是一个字节一个字节的读取的,为了优化这个我们采用了buffered,…...
Linux 线程初步解析
1.线程概念 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列。在linux中,由于线程和进程都具有id,都需要调度等等相似性,因此都可以用PCB来描述和控制,线程含有PCB&am…...
为ppt中的文字配色
文字的颜色来源于ppt不可删去的图像的颜色 从各类搜索网站中搜索ppt如何配色,有如下几点: 1.可以使用对比色,表示强调。 2.可以使用近似色,使得和谐统一。 3.最好一张ppt中,使用的颜色不超过三种主要颜色。 但我想强调…...
python-区间内的真素数(赛氪OJ)
[题目描述] 找出正整数 M 和 N 之间(N 不小于 M)的所有真素数。真素数的定义:如果一个正整数 P 为素数,且其反序也为素数,那么 P 就为真素数。 例如,11,13 均为真素数,因为 11 的反序…...
TCP/IP、UDP、HTTP 协议介绍比较和总结
TCP/IP、UDP、HTTP是网络通信中的三种重要协议,各自具有不同的特点和应用场景。以下是对这三种协议的详细介绍、比较和总结。 TCP/IP协议 传输控制协议/互联网协议(TCP/IP, Transmission Control Protocol/Internet Protocol) 特点: 可靠性:TCP提供可靠的通信,通过握手…...
Unity Meta Quest 开发:如何在每只手指上添加 Poke 交互
XR 开发社区: SpatialXR社区:完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子 找到玩家物体 OVRCameraRig 下的子物体 HandInteractorsRight/Left(分别管理左右手的 Interactor)下的 HandPokeInteractor 子物体&#x…...
MyBatis的原理?
MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数及获取结果集。MyBatis可以通过简单的XML或注解来配置和映射原生类型、接口和Java的POJOs(Plain Old Java Objects)为…...
数学基础【俗说矩阵】:齐次线性方程和非齐次线性方程求解-学习笔记
一、矩阵基础知识 二元一次方程的传统解法 不论是代入消元法还是加减消元法都统称 【高斯消元法】。 齐次方程组和非齐次方程组 线性方程组的解 线性方程的向量展示 向量规则 矩阵的高斯消元和初等行变行及其规则 高斯消元规则 初等行变换 矩阵经初等行变换成阶梯矩阵&…...
乐尚代驾项目概述
前言 2024年7月17日,最近终于在低效率的情况下把java及其生态的知识点背的差不多了,投了两个礼拜的简历,就一个面试,总结了几点原因。 市场环境不好 要知道,前两年找工作,都不需要投简历,把简历…...
脱发的 7 个原因,不能再瞒着大家了!
《黄帝内经》记载,“发为血之余,肾其华在发”。乌发飘逸的秀发,是年轻之体气血充盈、生机勃发的象征,更是纯粹天然、淡泊雅致的东方美学的体现。年轻一代不仅关注身体的养生,对头发的保护与保养也有了新的认识。头发已经成为当代年…...
Vim使用教程
目录 引言1. Vim的基本概念1.1 模式1.2 启动和退出 2. 基础操作2.1 导航2.2 插入文本2.3 删除和复制2.4 查找和替换 3. 高级功能3.1 多文件编辑3.2 宏录制和执行3.3 使用插件3.4 自定义快捷键 4. Vim脚本和自定义配置4.1 基本配置4.2 编写Vim脚本 5. 实用技巧5.1 快速移动5.2 批…...
前端开发体系+html文件详解
目录 html骨架 body主体内基本元素 基本元素 超文本(超链接跳转) 锚点 图片标签 列表标签 表格标签 框架标签(窗口标签) 音频标签 视频标签 VScode编译器 输入框 字体样式 实例展示: 首先简要介绍前端的整…...
小程序中用于跳转页面的5个api是什么和区别
在微信小程序中,用于页面跳转的API主要有以下几个,但通常不需要5个那么多,因为它们的功能各有侧重,用于不同的跳转场景。以下是这些API及其详细代码和区别: wx.navigateTo(OBJECT) 用于保留当前页面,跳转到…...
翁恺-C语言程序设计-10-0. 说反话
10-0. 说反话 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母&#…...
langchain 入门指南(二)- 如何跟大模型对话
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 本文中,我们会通过一个简单的例子来展示如何使用 langchain 来调用大模型的 chat API(使用 Chat Modelÿ…...
PowerBI主题模板终极指南:35款专业模板一键美化数据报表
PowerBI主题模板终极指南:35款专业模板一键美化数据报表 【免费下载链接】PowerBI-ThemeTemplates Snippets for assembling Power BI Themes 项目地址: https://gitcode.com/gh_mirrors/po/PowerBI-ThemeTemplates 还在为PowerBI报表的单调外观而烦恼吗&…...
智慧铁路列车车辆和人员检测数据集VOC+YOLO格式5059张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):5059标注数量(xml文件个数):5059标注数量(txt文件个数):5059标注类别…...
【开源软件移植】鸿蒙 PC 三方库适配实战:从 7-Zip Native 编译到 ArkTS 调用完整跑通
【开源软件移植】鸿蒙 PC 三方库适配实战:从 7-Zip Native 编译到 ArkTS 调用完整跑通 一、写在前面 欢迎加入开源鸿蒙PC社区:https://harmonypc.csdn.net/ 这篇文章记录的是把 7-Zip 的 .7z 压缩、校验、解压能力适配成 HarmonyOS / OpenHarmony PC …...
如何为Hermes Agent配置Taotoken作为自定义模型供应商并写入环境变量
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为Hermes Agent配置Taotoken作为自定义模型供应商并写入环境变量 基础教程类,详细说明在Hermes Agent中配置Taotok…...
DistroAV(原OBS-NDI)完整使用指南:NDI技术在OBS中的高效应用
DistroAV(原OBS-NDI)完整使用指南:NDI技术在OBS中的高效应用 【免费下载链接】obs-ndi DistroAV (formerly OBS-NDI): NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi DistroAV(原名…...
2026年5月推荐TOP10儿童书桌防色彩失真具体案例评测与评价特点选择指南
摘要 当儿童近视率持续攀升,低龄化趋势日益显著,家长们开始意识到,除了控制屏幕时间,学习桌上的照明设备或许是守护视力的关键防线。面对市场上众多品牌,如何从底层光源安全、光学舒适度以及智能适配性等维度ÿ…...
如何用1条提示生成可商用超现实IP?:Midjourney商业级输出的6道合规校验流程(含版权链存证路径)
更多请点击: https://codechina.net 第一章:超现实IP的商业价值与Midjourney生成范式跃迁 超现实IP正从边缘创意实验走向主流商业基础设施——其核心驱动力并非单纯视觉奇观,而是对用户心智注意力的结构性重构。当品牌不再依赖写实叙事建立信…...
HSTracker:为macOS炉石传说玩家打造的数据智能助手
HSTracker:为macOS炉石传说玩家打造的数据智能助手 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker 在瞬息万变的炉石传说对局中,你是否曾因忘记对…...
如何用MediaCrawler实现7大平台数据采集与追踪:从零到一的完整实战指南
如何用MediaCrawler实现7大平台数据采集与追踪:从零到一的完整实战指南 【免费下载链接】MediaCrawler 小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 | 评论爬虫、微博帖子 | 评论爬虫、百度贴吧帖子 &#x…...
别再死记硬背了!用STM32F407ZGT6标准库点亮LED,我总结了这4步万能配置法
STM32F407ZGT6标准库GPIO配置:从机械操作到思维模型的跃迁 第一次接触STM32标准库的开发者,往往会被繁琐的初始化步骤困扰。为什么需要开启时钟?结构体成员配置有何规律?这些问题不解决,即使成功点亮LED,也…...
