Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )

Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )

  • 回溯
    • 什么是Sentinel?
  • 正文
    • 环境准备
    • 简单使用
    • 复杂使用
        • 注意事项

回溯

什么是Sentinel?

Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量
为切入点, 从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。

本文主要讲解 Sentinel 容错功能之一 热点规则

正文

环境准备

需要启动好 Sentinel 控制台,以及监控一个消费者。
在这里插入图片描述
若对这一步有疑虑,请参考SpringCloud Alibaba - Sentinel入门案例(一)。

编写一个消费者调用生产者的方法,并调用。

	/**
     * 注意这里必须使用 @SentinelResource 这个注解标识,否则热点规则不生效
     * @param name
     * @param age
     * @param other
     * @return
     */
    @RequestMapping("/testMessageFunction4")
    @SentinelResource("/HotspotRules")
    public String testMessageFunction4(String name, Integer age ,String other) {
        return name + age +other;
    }

Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第1张图片

简单使用

热点参数流控规则是一种更细粒度的流控规则, 它允许将规则具体到参数上。

Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第2张图片
热点规则的限流模式只有一种 QPS 模式

  • 参数索引:填写此服务的请求参数下标,默认从0开始。ps(以上面请求为例:name下标是0 / age下标是1 / other下标是2 (有使用过 javassist 的会比较容易理解))。
  • 单机阈值:窗口时长中符合条件的次数。
  • 统计窗机时长:统计时间。

依照上图的配置,意思是,当在三秒内,接收到了两次下标是0(name)的请求,会被降级。
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第3张图片
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第4张图片

若是没有传递下标为0(name)的参数,则不会限流。
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第5张图片
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第6张图片
以上证明,测试成功。

复杂使用

Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第7张图片
ps(高级选项只有当点击编辑的时候才会显示,而新增的时候是没有的)。
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第8张图片
参数例外项 是对简单配置的参数索引进行更纤细的配置。
如上,我对下标为0(name)的索引进行了配置,当为胡歌的时候,并且在三秒内请求过一次后,进行降级。
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第9张图片

Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第10张图片
可是当我name为刘亦菲的时候访问第二次并不会触发降级,只有当访问超过两次才会触发降级。
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第11张图片
Spring Cloud Alibaba - Sentinel入门案例(四)(热点规则 )_第12张图片

注意事项

  • 当设置热点规则的时候,如果满足了参数例外项,那么触发降级。
  • 不满足参数例外项,但却满足简单配置项,也会触发降级。
  • 参数例外项优先级高于简单配置项。

你可能感兴趣的:(Spring,Cloud,Alibaba)