首页 > 其他分享 >Sentinel——热点规则

Sentinel——热点规则

时间:2023-12-04 23:13:32浏览次数:24  
标签:param 限流 规则 Sentinel import 热点 id

目录

热点规则

热点规则是用于实现热点参数限流的规则。热点参数限流指的是,在流控规则中指定对某方法参数的 QPS 限流后,当所有对该资源的请求URL中携带有该指定参数的请求 QPS 达到了阙值,则发生限流。

配置热点规则

controller

package com.zjw.controller;

import com.alibaba.csp.sentinel.annotation.SentinelResource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 前端控制器
 *
 * @since 2023-12-4
 */
@RestController
@Slf4j
public class DepartController {

    /**
     * 测试热点规则
     */
    //发生异常会降级,调用paramFallback方法
    @SentinelResource(value = "param", fallback = "paramFallback")
    @GetMapping("/param")
    public String param(Long id, String name) {
        return "param:" + id + ", " + name;
    }

    public String paramFallback(Long id, String name) {
        return "fallback param:" + id + ", " + name;
    }
}

sentinel控制台配置热点规则

请求中含有第0索引(即id),且十秒内请求超过三次,第四次请求会被限流。

参数索引: 是配置的热点规则所在方法的第几个参数,索引从0开始
统计窗口时长:统计窗口时间长度(单位为秒)。请求在该时间之内的请求数量大于阈值会被限流。

请求测试

也可以通过高级选项设置例外。如我们可以把id为0的值阈值设置大一些,减少被限流的可能。

API配置热点规则

package com.zjw;

import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRule;
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRuleManager;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.util.ArrayList;
import java.util.List;

@SpringBootApplication
public class ConsumerParamRule8080Application {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerParamRule8080Application.class, args);
        //初始化热点规则
        paramRule();
    }

    private static void paramRule() {
        ParamFlowRuleManager.loadRules(configParamFlowRule());
    }

    // 设置授权规则
    private static List<ParamFlowRule> configParamFlowRule() {
        List<ParamFlowRule> ruleList = new ArrayList<>();
        ParamFlowRule rule = new ParamFlowRule();
        // 资源名
        rule.setResource("param");
        // 参数索引
        rule.setParamIdx(0);
        // 单机阈值
        rule.setCount(3);
        // 统计窗口时长 s
        rule.setDurationInSec(1);
        ruleList.add(rule);
        return ruleList;
    }
}

标签:param,限流,规则,Sentinel,import,热点,id
From: https://www.cnblogs.com/zjw-blog/p/17876248.html

相关文章

  • Sentinel——授权规则
    授权规则授权规则是一种通过对请求来源进行甄别的鉴权规则。规则规定了哪些请求可以通过访问,而哪些请求则是被拒绝访问的。而这些请求的设置是通过黑白名单来完成的。无论是黑名单还是白名单,其实就是一个请求来源名称列表。出现在来源黑名单中的请求将被拒绝访问,而其它来源的请......
  • Sentinel——流控规则
    流控规则流控规则是用于完成服务流控的。服务流控即对访问流量的控制,也称为服务限流。Sentine实现流控的原理是监控应用流量的QPS或并发线程数等指标,当达到指定的值时对再到来的请求进行进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。设置流控规则代码设置......
  • 在Winform应用中增加通用的业务编码规则生成
    在我们很多应用系统中,往往都需要根据实际情况生成一些编码规则,如订单号、入库单号、出库单号、退货单号等等,我们有时候根据规则自行增加一个函数来生成处理,不过我们仔细观察后,发现它们的编码规则有很大的共通性,因此可以考虑使用一些通用的业务编码规则生成,从而在系统中统一维护即......
  • 叮咚,你的微信年度聊天报告请查收「GitHub 热点速览」
    本周热点项目WeChatMsg是一个微信记录提取工具,据说它还能帮你分析聊天记录、生成你的年度聊天报告。而又到了年底,部分不幸的小伙伴要开始写年度总结了,这时候self-operating-computer就能让你的电脑变成熟,在你的指示下写完你的年度汇报。除了更智能的电脑,本周AnimateAnyone......
  • Sentinel——服务降级
    目录简介Sentinel方法级降级Sentinel类级降级OpenFeign类级降级简介服务降级是一种增强用户体验的方式。当用户的请求由于各种原因被拒后,系统返回-一个事先设定好的、用户可以接受的,但又令用户并不满意的结果。这种请求处理方式称为服务降级。Sentinel方法级降级导入依赖......
  • Sentinel——控制台使用
    简介官网:https://sentinelguard.io/随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发......
  • Go--命名规则
    在Go语言中,项目名和文件名的命名规则有一些建议和惯例。以下是一些常见的规则和最佳实践:项目名:项目名应该简短、有意义,并能够清晰地表达项目的目的或功能。项目名通常使用小写字母,使用连字符或下划线分隔单词。项目名不应包含特殊字符或空格。项目名应尽量避免与现有的库......
  • Sentinel 微服务保护
    Sentinel微服务保护​#Sentinel#​本文章为个人摘抄笔记,原文章来源于www.cnblogs.com/xiegongz...‍Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.html雪崩问题与解决方式所谓的雪崩指的是:微服务之间相互调用,调用链......
  • antd 表单外提交进行规则校验
    import{Form,Input,Button}from'antd';constMyForm=()=>{constonFinish=(values)=>{console.log('Formvalues:',values);};constvalidateFields=()=>{form.validateFields().then(()=>......
  • Suricata规则编写
    在高层次上,Suricata签名由三部分组成: Action:当流量符合规则时采取的行动 Header:一个标题,描述主机、IP地址、端口、协议和流流量方向(传入或传出) Options:选项,指定诸如签名ID(sid)、日志信息、匹配数据包内容的正则表达式、分类类型,以及其他可以帮助缩小识别合法和......