Sentinel限流

1、注意版本(springboot的版本要和sentinel的版本适配)
 

<dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        <version>2021.0.6.0</version>
</dependency>

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.15</version>

2、如果报错循环依赖

spring:
        cloud:
                sentinel:
                        filter:
                                enabled: false // 解决循环依赖报错
                        transport:
                                port: 8719
                        dashboard: localhost:8080

3、限流规则

public static void main(String[] args) {
        try {
            SpringApplication.run(PsychologyApplication.class, args);
            initSentinel();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }

    /**
     * 定义限流规则
     */
    private static void initSentinel() {
        List<FlowRule> rules = new ArrayList<>();
        FlowRule rule = new FlowRule();
        rule.setResource("hello"); // 资源名称,限流接口注解中的value
        rule.setGrade(RuleConstant.FLOW_GRADE_QPS); // 根据 QPS 限流
        rule.setCount(1); // QPS 阈值【每秒只允许通过一个请求】
        rule.setStrategy(RuleConstant.STRATEGY_DIRECT); // 调用关系限流策略【非必须设置】
        rule.setControlBehavior(RuleConstant.CONTROL_BEHAVIOR_DEFAULT); // 流控效果【非必须设置】
        rule.setClusterMode(false); // 是否集群限流【非必须设置,默认非集群】
        rules.add(rule);
        FlowRuleManager.loadRules(rules);
    }

4、限流接口

@GetMapping(value = "/hello/{name}")
    @SentinelResource(value = "hello", blockHandler = "exceptionHandler", fallback = "helloFallback")
    public String apiHello(@PathVariable String name) {
        return "hello";
    }

    // Fallback 函数,函数签名与原函数一致或加一个 Throwable 类型的参数.
    public String helloFallback(String s) {
        return String.format("Halooooo %s", s);
    }

    // Block 异常处理函数,参数最后多一个 BlockException,其余与原函数一致.
    public String exceptionHandler(String s, BlockException ex) {
        // Do some log here.
        ex.printStackTrace();
        return "Oops, error occurred at " + s;
    }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java [ 基础 ] 异常处理 ✨

✨探索Java基础 异常处理✨ 在Java编程中&#xff0c;异常处理是一个非常重要的概念&#xff0c;它有助于在程序运行时捕获和处理错误&#xff0c;从而使程序更加健壮和可靠。 本文将介绍Java中的异常基础知识、异常类型、异常处理机制以及最佳实践。 一、什么是异常&#…

SQL语句的案例分析

根据提供的图片内容&#xff0c;这段文字看起来像是一个SQL查询的一部分&#xff0c;特别是一个用于删除数据的语句。以下是对这段SQL的核心内容整理&#xff1a; ### 核心内容整理&#xff1a; 1. **删除操作**&#xff1a; - 使用DELETE语句来删除数据。 2. **子查询**…

惠海 H6900B 2.7V3.7V4.2V5V9V升12V24V48VLED升压恒流芯片IC

惠海H6900B LED升压恒流芯片IC是一款功能丰富的LED驱动解决方案&#xff0c;为高亮度LED灯串设计。以下是针对该产品的进一步分析和解释&#xff1a; 产品特点 高效率&#xff1a;高达95%以上的效率意味着在驱动LED时&#xff0c;只有很少的能量转化为热量&#xff0c;从而提…

轨迹规划 | 图解模型预测控制MPC算法(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 模型预测控制原理2 差速模型运动学3 基于差速模型的MPC控制4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全局规划(图搜索、…

“论单元测试方法及应用”写作框架,软考高级论文,系统架构设计师论文

论文真题 1、概要叙述你参与管理和开发的软件项目,以吸你所担的主要工作。 2、结给你参与管理和开发的软件项目&#xff0c;简要叙述单元测试中静态测试和动态测试方法的基本内容。 3、结给你惨与管理和研发的软件项目,体阐述在玩测试过程中,如何确定白盒测试的覆盖标准,及如…

YOLO在目标检测与视频轨迹追踪中的应用

YOLO在目标检测与视频轨迹追踪中的应用 引言 在计算机视觉领域&#xff0c;目标检测与视频轨迹追踪是两个至关重要的研究方向。随着深度学习技术的飞速发展&#xff0c;尤其是卷积神经网络&#xff08;CNN&#xff09;的广泛应用&#xff0c;目标检测与视频轨迹追踪的性能得到…

WAIC | 斯梅尔数学与计算研究院邀您莅临WAIC 2024“数学与人工智能”论坛

当我们谈论起人工智能这一变革性力量时&#xff0c;就不得不提及数学。人工智能作为当今社会的热门话题&#xff0c;从AlphaGo到ChatGPT&#xff0c;从智能制造到数字文旅&#xff0c;它的发展和应用深刻地影响着行业和人们的生活。然而&#xff0c;人工智能的发展和基础离不开…

怎么把视频字幕提取出来?一招教你提取视频字幕

想必大家一定很有同感吧&#xff0c;视频已成为我们获取知识与新闻的主要渠道。 面对如此众多的视频资源&#xff0c;如何迅速筛选出核心信息并进行有效管理&#xff0c;成为了一项迫切需要解决的问题。 视频字幕提取翻译软件的问世&#xff0c;利用尖端的语音识别技术&#…

Kimi 上下文缓存功能开启公测!降低使用费用,加快模型相应速度

7月2日&#xff0c;系统之家发布消息&#xff0c;月之暗面科技有限公司旗下的Kimi开放平台正式推出上下文缓存功能&#xff0c;并已开放公测。这项功能专为处理频繁请求和大量重复引用初始上下文的场景设计&#xff0c;能有效降低使用长文本模型的成本&#xff0c;并显著提升处…

森林防火气象站:守护森林安全的科技利器

在广袤无垠的森林中&#xff0c;火灾一直是威胁森林生态安全的重要因素。为了有效预防和控制森林火灾&#xff0c;科学家们不断研发新技术&#xff0c;而森林防火气象站正是这一领域的重要成果之一。其中&#xff0c;森林防火气象站凭借其强大的功能和独特的设计&#xff0c;在…

laravel对接百度智能云 实现智能机器人

创建API Key和 Secret Key进入网址&#xff1a;百度智能云千帆大模型平台 如下图操作&#xff1a; 填写完毕点击确认后&#xff0c;即可得到sk和ak 后端接口实现代码&#xff1a; //调用百度智能云第三方机器人接口public function run($text) {$curl curl_init();curl_setop…

【基于R语言群体遗传学】-2-模拟基因型(simulating genotypes)

书接上文&#xff0c;我们昨天讨论了遗传的哈代温伯格比例&#xff1a; 【基于R语言群体遗传学】-1-哈代温伯格基因型比例-CSDN博客 接下来&#xff0c;如果我们能够模拟一个过程并观察模拟结果与我们预期的是否相符&#xff0c;这通常有助于指导我们对这个过程的直观感觉。让…

工业读码器与商用扫码器的区别

条码二维码在数字信息化应用越来越广泛&#xff0c;扫码器成为了数据收集和处理的重要工具&#xff0c;无论是工厂生产和物流包裹朔源追踪&#xff0c;还是商场超市扫码收银和餐饮娱乐等场景&#xff0c;均能看到扫码器的辅助&#xff0c;市场上的扫码器种类繁多&#xff0c;在…

C++修饰符类型

一、存储类运算符 auto&#xff08;自动存储类&#xff0c;但在现代C中&#xff0c;它通常用于自动类型推导&#xff09; register&#xff08;建议编译器将变量存储在寄存器中&#xff0c;但现代编译器通常忽略此关键字&#xff09; static&#xff08;静态存储类&#xff…

AD20使用操作Part2

元件的放置 在原理图界面&#xff0c;在右下角&#xff0c;Panels 选择Components 在自己元件库直接拖过来&#xff0c;放到原理图。 器件的复制和对齐 双击边缘&#xff0c;更改为A3纸 画方格&#xff0c;把元件给规划&#xff1a;放置——绘图工具——线 Shift空格&am…

【linux网络(七)】数据链路层详解

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux网络 1. 前言2. 认识MAC…

Android --- 新电脑安装Android Studio 使用 Android 内置模拟器电脑直接卡死,鼠标和键盘都操作不了

新电脑安装Android Studio 使用 Android 内置模拟器电脑直接卡死&#xff0c;鼠标和键盘都操作不了 大概原因就是,初始化默认Google的安卓模拟器占用的RAM内存是2048&#xff0c;如果电脑的性能和内存一般的话就可能卡死&#xff0c;解决方案是手动修改安卓模拟器的config文件&…

运营商如何通过PCDN技术提高用户服务?

着互联网的快速发展&#xff0c;用户对网络速度和质量的要求越来越高。为了满足这些需求&#xff0c;内容分发网络(CDN)成为了关键的基础设施。而在CDN技术中&#xff0c;PCDN(PersonalCDN)作为一种新兴的技术&#xff0c;为运营商和用户提供了新的解决方案。本文将重点介绍PCD…

RuoYi-Vue项目后端增加自己的模块,要注意的点,只看我这一片就够了。

若依版本&#xff1a; RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分离权限管理系统&#xff0c;同时提供了 Vue3 的版本 背景&#xff1a; 后端想自己增加一个模块&#xff0c;但是包路径…

聊聊 golang 的 map

1、哈希表 哈希表是一个很常见的数据结构&#xff0c;用来存储无序的 key/value 对&#xff0c;给定的 key 可以在 O(1) 时间复杂度内查找、更新或删除对应的 value。 设计一个好的哈希表&#xff0c;需要着重关注两个关键点&#xff1a;哈希函数、冲突处理。 1.1 哈希函数 …