10-使用sentinel流控
本文介绍sentinel的直接流控的使用。
0、环境
- jdk 1.8
- sentinel 1.8.2
- springboot 2.4.2
1、sentinel环境搭建
从官方发布的网站上下载: sentinel Jar,下载对应版本。
下载完成后,进入刚才下载的Jar文件所在的目录,执行如下命令:
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.2.jar
正常启动后,浏览器访问: http://localhost:8080,显示sentinel登录页面,用户名和密码默认都是sentinel。到这里,sentinel就搭建完成了。
2、集成sentinel
引入依赖:
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>2021.1</version>
</dependency>
在application.yml文件中配置连接信息,配置如下:
spring:cloud:sentinel:transport:port: 8719dashboard: localhost:8080
其中,8719是sentinel api的默认端口。
3、配置资源
写一个简单的controller,代码如下:
@RestController
@RequestMapping("/sentinel")
@Slf4j
public class SampleController {/*** @SentinelResource注解标注此方法需要流量控制,blockHandler指定当触发流控后,要执行的业务逻辑。* 此处指定对应的方法名称,注意,方法名称需要和流控标注的方法签名完全一样。*/@GetMapping("/1")@SentinelResource(value = "sentinel1", blockHandler = "sentinel1Block")@ResponseBodypublic Map<String, String> sentinel1() {log.info("sentinel1()");Map<String, String> map = new HashMap();map.put("value", "1");return map;}public Map<String, String> sentinel1Block(BlockException blockException) {log.info("接口限流了!!!");return new HashMap<>();}}
4、设置流控规则
打开sentinel控制台,找到对应的服务,如果没找到,就手动向自己的服务发几次请求,再次刷新sentinel控制台,你的服务就出现了。
点击“流控规则”,再点击“新增流控规则”,输入如下图:

保存后,即可启动服务测试了。注意:这里使用的是直接流控模式,其作用是针对注解标注的controller接口。
测试就不说了吧,用postman或命令行都行。我用命令行:
curl --location --request GET 'http://localhost:9080/sentinel/1' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Host: localhost:9080' \
--header 'Connection: keep-alive'
这是在mac环境的测试命令,注意,与Windows的区别。好了,就到这里吧。
相关文章:
10-使用sentinel流控
本文介绍sentinel的直接流控的使用。 0、环境 jdk 1.8sentinel 1.8.2springboot 2.4.2 1、sentinel环境搭建 从官方发布的网站上下载: sentinel Jar,下载对应版本。 下载完成后,进入刚才下载的Jar文件所在的目录,执行如下命令:…...
redis AOF机制
在redis运行期间,不断将redis执行的写命令写到文件中,redis重启之后,只要将这些命令重复执行一遍就可以恢复数据。因为AOF只是将少量的写命令写入AOF文件中,因此其执行效率高于RDB,开启AOF即使Redis发生故障࿰…...
Day 21代码|随想录| 二叉树完结撒花,今日刷题669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.吧二叉搜索树转换为累加树
提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 二叉树 Part06二、题目题目一:669.修剪二叉搜索树解题思路:递归法迭代法: 题目二: 108.将有序数组转换为二叉搜索树解题思路递归法:迭代…...
cmake教程一
1. Start 1.1 构建简单工程 cmake_minimum_required(VERSION 3.0) project(Step1) add_executable(Step1 main.cpp)设置cmake最低版本要求设置工程名字设置工程生成可执行程序 2. 声明 C Standard set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True)如果我…...
3D场景标注标签信息,three.js CSS 2D渲染器CSS2DRenderer、CSS 3D渲染器CSS3DRenderer(结合react)
如果你想用HTML元素作为标签标注三维场景中模型信息,需要考虑定位的问题。比如一个模型,在代码中你可以知道它的局部坐标或世界坐标xyz,但是你并不知道渲染后在canvas画布上位置,距离web页面顶部top和左侧的像素px值。自己写代码把…...
C++参悟-单例模式
单例模式 一、概述1. 特点2. 实现方式3. 应用场景 二、实现代码1. 静态局部变量的懒汉单例2. 加锁的懒汉式单例3. 使用 C11 中的 std::call_one 的懒汉单例4. 饿汉式单例 一、概述 这里记录一下单例模式的最常用使用,单例模式(Single Pattern࿰…...
【题解】—— LeetCode一周小结32
🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 【题解】—— 每日一道题目栏 上接:【题解】—— LeetCode一周小结31 5.不含连续1的非负整数 题目链接:600. 不含连续…...
详解线索分层的目的、维度与创新实践
线索分层是一个系统性的过程,旨在更有效地管理、跟踪和利用线索资源。这一过程可以借鉴多种策略和方法,特别是在用户运营和市场营销中。 1、线索分层的目的 线索分层的主要目的是根据线索的不同特征或成熟度,将其分类管理,以便更…...
于8月21号的回顾
傍晚的日落和逐渐深邃的夜,驱散了白天的极致闷热。倦怠和疲惫充斥着大脑,喧嚣的浮沉又在耳边轰鸣。 我不曾想到,再次打开博客已经是两年后的今天了。手指轻轻滑过鼠标,博客的页面缓缓加载,那些被时间尘封的记忆瞬间涌…...
Abstract Class抽象类
抽象类(Abstract Class)在面向对象编程中是一种特殊的类,它不能被实例化,即不能创建该类的对象。抽象类主要用于定义一组接口(即方法),这些方法的具体实现由子类来完成。抽象类通常用于表示一种…...
webrtc ns 降噪之粉红噪声参数推导
webrtc中降噪中,前50帧需要进行简单噪声估计,使用白噪声和粉红噪声模型估算。 首先我们 复习 有色噪声(包含白噪声)的一般模型: S(f) 是频率 f 处的功率谱密度。f是频率。α 是一个频谱指数,通常在1左右。…...
IO进程线程8月21日
1,思维导图 2,登录 #ifndef __LOG_H__ #define __LOG_H__ #include<myhead.h> typedef struct {char name[20];char pwd[20]; }str;int regist();int login(); #endif#include"log.h" int login() {char a[20]"\n";str p,s;…...
Web安全:SqlMap工具
一、简介 sqlmap 是一款开源的渗透测试工具,可以自动化进行SQL注入的检测、利用,并能接管数据库服务器。它具有功能强大的检测引擎,为渗透测试人员提供了许多专业的功能并且可以进行组合,其中包括数据库指纹识别、数据读取和访问底层文件系统…...
用手机写一本电子书
第1步、进入Andi.cn网站 第2步、点击登录,注册用户 第3步、点击去创作,进入创作页面 第4步、点击右下角的小笔,写一篇文章 第5步、下翻,点击提交按钮 第6步、再写一篇文章 第7步、点击栏目设计 第8步、进入栏目设计,点…...
【网络编程】基于UDP的TFTP文件传输
1)tftp协议概述 简单文件传输协议,适用于在网络上进行文件传输的一套标准协议,使用UDP传输 特点: 是应用层协议 基于UDP协议实现 数据传输模式 octet:二进制模式(常用) mail:已经不再…...
Vue 3 + Pinia 实现网页刷新功能
概述 在现代 Web 开发中,保持用户界面的动态性和响应性至关重要。当用户触发某些操作时,例如点击按钮或者完成表单提交,我们往往需要刷新页面的一部分来展示最新的数据。本文将介绍如何使用 Vue 3 和 Pinia 来实现这一功能。 技术栈 Vue 3…...
DVWA综合靶场漏洞讲解
目录 综合靶场漏洞讲解 Brute Force Low Medium High Command Injection Low Medium High File Inclusion Low,Medium,High File Upload Low Medium High SQL Injection Low Medium High SQL Injection (Blind) Low Medium High XSS(DOM&am…...
实现Bezier样条曲线
1.给出n1 个控制点pk(xk,yk,zk),这里k可取值0-n,多项式函数公式如下 获取的单个点的代码 void zmBezier::getPoint(float u, double p[3]) {int n m_count - 1;double x 0, y 0, z 0;for(int k 0; k < n; k){x m_ctrlPoints[k][0] * BEZ_k_n(n, k, u);y m_ctrlPoin…...
MySQL中的EXPLAIN的详解
一、介绍 官网介绍: https://dev.mysql.com/doc/refman/5.7/en/explain-output.htmlhttps://dev.mysql.com/doc/refman/8.0/en/explain-output.htmlexplain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句ÿ…...
LearnOpenGL——SSAO学习笔记
LearnOpenGL——SSAO学习笔记 SSAO一、基本概念二、样本缓冲三、法向半球四、随机核心转动五、SSAO着色器六、环境遮蔽模糊七、应用SSAO遮蔽因子 SSAO 一、基本概念 环境光照是我们加入场景总体光照中的一个固定光照常量,它被用来模拟光的散射(Scattering)。散射应…...
从系统光标到个性化指针:动漫主题鼠标指针的完整实现指南
1. 项目概述:从“二次元”到“生产力”的鼠标指针革命如果你和我一样,每天有超过8小时的时间与电脑为伴,那么鼠标指针就是你最亲密的“数字伙伴”。它可能是一个单调的白色箭头,也可能是一个乏味的沙漏。但你想过吗?这…...
PCB 设计避坑指南|从基础规范到制造验证,一文吃透所有核心规则
1 设计基础规范1.1 文件命名与管理PCB 命名遵循 “产品型号 功能代码 设计序号 版本” 格式,例如 “AIP25-Lab-V1.0” 。严禁直接覆盖旧版文件,确保设计版本的可追溯性和规范性。1.2 材料与工艺选择1.2.1.基材采用 FR4 环氧玻璃布。 1.2.2 板厚厚度范…...
年度名场面!黄仁勋逛胡同被投喂豆汁,眉头紧锁。网友:弥补了没有喝过 XX 的遗憾
5 月 15 日,「黄仁勋 南锣鼓巷」话题突然在多平台引爆热议。谁能想到,手握 5 万亿美刀市值的科技大佬,私下里竟是胡同干饭人。昨天在大会堂还是西装革履,今天老黄换上他的经典皮肤套装,带几名随行人员低调逛南锣鼓巷和…...
RFSoC开发避坑指南:手把手教你理解并配置RF数据转换器的核心结构体(以XRFdc为例)
RFSoC开发实战:深度解析XRFdc结构体配置与避坑策略 第一次打开xrfdc.h头文件时,面对密密麻麻的结构体定义,我的鼠标滚轮不由自主地滑动了三分钟才看完所有内容。作为曾经在RFSoC项目上踩过无数坑的开发者,我完全理解那种面对数十个…...
【Midjourney光照提示词黄金法则】:20年AI视觉工程师亲授7类光效参数组合,92%新手3天提升质感层级
更多请点击: https://intelliparadigm.com 第一章:光照提示词在Midjourney中的底层作用机制 光照提示词(Lighting Prompts)并非简单的修饰性描述,而是直接参与 Midjourney V6 模型的 latent 空间引导与风格解耦的关键…...
SubDomainizer与其他工具集成:打造完整的网络安全评估工作流
SubDomainizer与其他工具集成:打造完整的网络安全评估工作流 【免费下载链接】SubDomainizer A tool to find subdomains and interesting things hidden inside, external Javascript files of page, folder, and Github. 项目地址: https://gitcode.com/gh_mirr…...
基于APScheduler的定时提醒服务设计与Python实现
1. 项目概述与核心价值最近在折腾一个名为rogerwus/Noonwake_test的项目,这名字乍一看有点神秘,像是某个内部测试或者个人实验性质的仓库。作为一名常年泡在代码仓库里的开发者,我对这类项目标题背后的故事和技术探索总是充满好奇。经过一番深…...
Arm Neoverse CMN-650架构与缓存一致性协议解析
1. Arm Neoverse CMN-650架构概述在现代多核处理器设计中,缓存一致性互连网络是决定系统扩展性和性能的关键组件。Arm Neoverse CMN-650作为第二代Coherent Mesh Network解决方案,采用了创新的分布式目录协议和优化的传输机制,能够支持多达12…...
LLM赋能网页抓取:基于ChatGPT的智能数据提取实战指南
1. 项目概述与核心价值最近在数据采集和自动化领域,一个名为“oxylabs/chatgpt-web-scraping”的项目引起了我的注意。乍一看,这像是把两个热门概念——大型语言模型(LLM)和网页抓取(Web Scraping)——强行…...
网络出口IP管理工具ipman:原理、使用与实战指南
1. 项目概述与核心价值最近在折腾网络工具和代理配置时,发现了一个挺有意思的开源项目,叫twisker/ipman。乍一看这个名字,可能会联想到IP地址管理,但实际上,它的定位更偏向于一个轻量级的、用于在特定网络环境下管理和…...
