Spring Cloud Alibaba Sentinel(五)热点参数限流及SpringCloud代码集成

1、什么是热点参数

热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:

  • 商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制

  • 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制

热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。

热点参数限流可以看做是一种特殊的流量控制,仅对包含热点参数的资源调用生效。

在这里插入图片描述
Sentinel 利用 LRU(最近最少使用,是一种常用的页面置换算法) 策略统计最近最常访问的热点参数,结合令牌桶算法来进行参数级别的流控。热点参数限流支持集群模式。

2、配置热点参数

  1. 需要在方法上增加@SentinelResource注解,用注解加入到sentinel的监控中,不增加此注解会无效,使用注解路径才会使热点监控生效

    @RequestMapping(value = "test1")
    @SentinelResource("test1")
    public String test1(Integer time) {
        return new Date().toString();
    }
    
  2. 簇点链路中配置热点监控。注意是对@SentinelResource注解中的value配置热点监控,否则无效
    在这里插入图片描述

    参数索引:若注解作用的方法上有参数,指的是第几个参数,参数索引从0开始(0代表第一个参数)
    单机阀值:第几次请求后开始触发
    在这里插入图片描述
    在这里插入图片描述

  3. 高级选项

参数类型7种:int、double、String、float、long、char、byte
参数值:例如图中,参数索引0,参数值1;当一个参数的参数值等于1时,触发的阀值会变为2(限流阀值可以大于单机阀值,也可以小于),效果可以擦汗看实时监控图
在这里插入图片描述

在这里插入图片描述

3、自定义热点熔断返回异常

更多说明请查看Spring Cloud Alibaba Sentinel(一)中标题六

    /**
     * sentinel对SpringMVC标准的请求会有一个埋点,加入到sentinel的监控中
     * @SentinelResource :用注解加入到sentinel的监控中,不增加此注解会无效,使用注解路径才会使热点监控生效
     *        fallback:回退函数的名称,默认为空
     *        fallbackClass:默认情况下,与原始方法位于同一类中。但是,如果某些方法共享相同的签名并打算设置相同的回退,则用户可以设置存在回退函数的类。请注意,共享回退方法必须是静态的。
     *        更多参数,可以进入注解中查看
     * @param time
     * @return
     */
    @RequestMapping(value = "test2")
    @SentinelResource(value = "test2",fallback ="fallback", fallbackClass = MyFallbackClass.class)
    public String test2(Integer time) {
        return new Date().toString();
    }

fallbackClass 如果不指定默认在当前类中顶一个fallback方法,如果指定则需要自定义个类,类中含有静态的fallback方法。

public class MyFallbackClass {
    /**
     * 该方法一定要是static方法
     */
    public static String fallback(Integer time) {
        return "Fall back.";
    }
}

!!!!SpringCloudAlibaba项目集成代码示例!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值