10-使用sentinel流控

news2025/1/25 4:29:45

本文介绍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

正常启动后,浏览器访问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: 8719
        dashboard: localhost:8080

其中,8719是sentinel api的默认端口。

3、配置资源

写一个简单的controller,代码如下:

@RestController
@RequestMapping("/sentinel")
@Slf4j
public class SampleController {
	
	/**
	 * @SentinelResource注解标注此方法需要流量控制,blockHandler指定当触发流控后,要执行的业务逻辑。
	 * 此处指定对应的方法名称,注意,方法名称需要和流控标注的方法签名完全一样。
	 */
    @GetMapping("/1")
    @SentinelResource(value = "sentinel1", blockHandler = "sentinel1Block")
    @ResponseBody
    public 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的区别。好了,就到这里吧。

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

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

相关文章

Qt+OpenCV配置和测试

一、前言 OpenCV作为比较大众化的跨平台计算机视觉开源库&#xff0c;可以运行在多种操作系统上&#xff0c;通过与Qt的结合&#xff0c;能够轻松的是实现一些图像处理和识别的任务&#xff0c;本文在Windows操作系统的基础上具体讲解Qt和OpenCV的配置和环境搭建方法&#xff…

PHP企业员工考勤系统—计算机毕业设计源码17108

摘要 由于数据库和数据仓库技术的快速发展&#xff0c;企业员工考勤系统建设越来越向模块化、智能化、自我服务和管理科学化的方向发展。员工管理系统对处理对象和服务对象&#xff0c;自身的系统结构&#xff0c;处理能力&#xff0c;都将适应技术发展的要求发生重大的变化。 …

叉车安装人脸识别管理系统,能带来哪些好处

当今工业生产中&#xff0c;叉车是一种常见的运输工具&#xff0c;广泛应用于各种场景&#xff0c;如工厂、仓库、码头等。然而&#xff0c;由于驾驶员的错误操作或非授权人员的驾驶&#xff0c;叉车在使用过程中可能会发生意外事故&#xff0c;给企业带来不小的损失。 为了提…

LangChain之数据库操作:通过链Chain和代理Agent查询数据库信息

Chain和Agent查询数据库 在LangChain&#xff0c;其提供了SQL Chain链和SQL Agent代理&#xff0c;他们支持基于自然语言提示构建和运行SQL查询&#xff0c;以此来操作数据库&#xff0c;并且与SQLAlchemy支持的任何SQL版本兼容。&#xff08;例如&#xff0c;MySQL&#xff0c…

自闭症儿童注意力分散怎么办?|星启帆自闭症寄宿学校

在自闭症儿童的成长过程中&#xff0c;一个常见且令人担忧的现象是“精神飘移行为”&#xff0c;这种行为表现为孩子沉浸在自己的小世界里&#xff0c;对外界刺激反应迟钝&#xff0c;甚至完全忽视。他们可能会做出一些怪异的动作、表现出刻板行为、自言自语&#xff0c;眼神呆…

Kafka服务端日志详解

文章目录 服务端日志Topic消息存储方式主体介绍log文件追加记录消息index和timeindex索引文件 日志文件清理Kafka的文件高效读写机制Kafka的文件结构顺序写磁盘零拷贝 合理配置刷盘频率客户端消费进度管理 服务端日志 Kafka的日志信息是通过conf/server.properties文件中的log…

用苹果机连接mac后怎么在电脑上调试苹果手机上页面的元素

问: 用苹果机连接mac后怎么在电脑上调试苹果手机上页面的元素, 使用MAC电脑、iPhone 真机调试 H5页面 回答: 使用MAC电脑、iPhone 真机调试 H5页面 简介 Safari 浏览器设置iPhone 手机设置开始调试 简介 为方便在 H5开发过程中在真实手机调试 H5页面&#xff0c;可进行一下…

Mybatis-springBoot

MyBatis 是一个流行的 Java 持久层框架&#xff0c;它简化了与关系型数据库的交互。通过将 SQL 语句与 Java 代码进行映射&#xff0c;MyBatis 提供了一种方便、灵活的方式来执行数据库操作。它支持动态SQL、缓存机制和插件扩展&#xff0c;使得开发人员能够更高效地编写和管理…

重学我的数据结构

二叉树 1. 遍历 (Traversal) 前序遍历 (Preorder Traversal): 先访问根节点&#xff0c;再访问左子树&#xff0c;最后访问右子树。 void preorderTraversal(Node root) {if (root null) return; System.out.print(root.value " "); preorderTraversal(root.left)…

韦东山瑞士军刀项目之I2C控制ssd 1306 OLED显示屏幕驱动源码分析(硬核)

太硬核了&#xff0c;但即便如此&#xff0c;我也只分析了如何实现ssd 1306的控制命令与显示命令的代码。尽管如此&#xff0c;我也了解了如何实现I2C的字符输出显示。意外收获是知道了ASCII码到底是个什么玩意儿。

python pygame如何实现碰撞检测

前言&#xff1a; 在python中&#xff0c;我们实现两个物品的碰撞检测往往是判断两个物体的x、y坐标是否有重合&#xff0c;根据坐标来进行判断&#xff0c;但是这种判断方式往往不太准确&#xff0c;对于一些透明部分&#xff0c;会出现误判的情况&#xff0c;今天介绍的是一…

古印度的未解之谜——哈拉帕印章文字

关注我们 - 数字罗塞塔计划 - 在之前的文章中&#xff0c;我们知晓了古埃及莎草纸的制作工艺&#xff08;参见《莎草纸——数千年前的信息记录载体》&#xff09;&#xff0c;也了解了由粘土变为陶片可保存数千年的苏美尔泥板书&#xff08;参见《泥板书&#xff1a;两河文明传…

暑期破防实录——捡漏腾讯

序 经历了整整三个月的折磨&#xff0c;暑期实习终于尘埃落定。 其实还没收到 offer 的时候&#xff0c;还会想着到时候录用了该怎么大写特写小作文&#xff0c;但真到了这一天&#xff0c;只剩下一种解脱感&#xff0c;一种摆脱了漫长的焦虑与压抑的淡淡喜悦。 或许就像久病…

Java垃圾收集底层算法实现

垃圾收集底层算法实现 三色标记 在并发标记的过程中&#xff0c;因为标记期间应用线程还在继续跑&#xff0c;对象间的引用可能发生变化&#xff0c;多标和漏标的情况就有可能发生。漏标的问题主要引入了三色标记算法来解决。 三色标记算法是把Gc roots可达性分析遍历对象过…

QT翻金币小游戏

目录 QT翻金币小游戏 效果展示 图片 视频 实现代码 main.cpp mymainwindow.h mymainwindow.cpp startscene.h startscene.cpp selectscene.cpp playscene.h playscene.cpp mypushbutton.h mypushbutton.cpp dataconfig.h dataconfig.cpp QT翻金币小游戏 效果展示…

什么是进程?C语言

进程的概念 进程就是执行中的程序&#xff0c;是系统资源分配的最小单位。 进程的内存分配 进程的作用 宏观上是并行的&#xff0c;微观上是串行的 进程的状态 对于基本的操作系统&#xff1a;有三个状态&#xff1a; 就绪态->执行态-> 阻塞态 在LInux中有四种&am…

docker数据卷、资源控制

一、docker数据卷&#xff1a; 1.容器和宿主机之间数据共享----挂载卷----容器内的目录和宿主机的目录进行挂载。实现数据文件共享容器的生命周期有限&#xff0c;一旦重启所有对容器内部文件数据的修改以及保存的数据都会被初始化&#xff0c;所以为了防止数据丢失重要的组件…

前端学习大纲 | 主流前端技术 | 学习路线

需要完整的学习路线的宝子可以点击获取&#xff1a;点击即可获取完整的学习路线 第一阶段&#xff08;页面还原能力&#xff09; HTML5、CSS3、Git 第二阶段&#xff08;专攻 JS 逻辑能力&#xff09; JavaScript 基础、JavaScript 进阶、JavaScript 高级、ES6 第三阶段&a…

【Java】如何使用jdbc连接并操作MySQL,一文读懂不迷路,小白也能轻松学会

JDBC的原理 JDBC&#xff08;Java Database Connectivity&#xff09;是Java提供的用于连接和操作数据库的API。它允许Java应用程序与各种数据库进行交互&#xff0c;以下是JDBC的基本原理&#xff1a; 驱动程序管理&#xff1a;JDBC使用不同的数据库驱动程序来连接不同类型的…

微信小程序--24(列表渲染)

一、wx&#xff1a;for 1.作用 根据指定数组&#xff0c;循环渲染重复的组件结构 2.语法 <view wx:for"{{data中的数据}}"> 索引是&#xff1a;{{index}}, item项是&#xff1a;{{item}}</view> index:表索引item&#xff1a;表当前循环项 …