SpringCloud Alibaba系列(三) Sentinel热点参数限流
愿你生命中有够多的云翳,造就一个美好的黄昏
欢迎关注公众号【渣男小四】,一个喜欢技术更喜欢艺术的青年
一.介绍
热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:
商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制
用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制
热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制,仅对包含热点参数的资源调用生效。
Sentinel 利用 LRU 策略统计最近最常访问的热点参数,结合令牌桶算法来进行参数级别的流控。
二.简单使用
例子:我们需要对携带参数为h1的请求进行限流,带有h1参数的是热点商品,不过过于频繁的访问。
代码
商品查询接口

查询过于频繁进行限流的兜底方法,兜底方法需要在上面query接口用blockHandler指定,如果query接口没有用blockHandler指定,则会返回异常界面,对于前端来说不友好

配置热点key
资源名为@SentinelResource(value = "query")中value值,参数索引从0开始,如果第一个参数是h1,则遵守响应的热点规则,单机阈值为1,代表一秒钟只能处理一个请求,否则进行限流

测试
1.一秒钟只发送一次请求

2.一秒钟多次请求

参数例外项
上面我们只要带了h1参数,不管h1的值是什么,违反了热点规则,都将会限流,但是有些情况我们希望参数的值为某个值时,限流规则不同,也就是说如果h1的值如果为big,我们希望他的QPS能够达到200。
配置参数例外项

配置过后,如果h1的值为big,则QPS就能达到200

注意:@SentinelResource只处理Sentinel控制台所配置的异常,而不处理程序的内部错误情况,也就是说在Sentinel控制台配置了相应的规则我才处理,如果程序内部出现了异常情况,则处理不了。
如:
制造程序内部出错

结果:无法走热点规则,而是直接报错。

SpringCloud Alibaba系列(三) Sentinel热点参数限流的更多相关文章
- 微服务架构 | 5.2 基于 Sentinel 的服务限流及熔断
目录 前言 1. Sentinel 基础知识 1.1 Sentinel 的特性 1.2 Sentinel 的组成 1.3 Sentinel 控制台上的 9 个功能 1.4 Sentinel 工作原理 ...
- Spring Cloud Alibaba基础教程:使用Sentinel实现接口限流
最近管点闲事浪费了不少时间,感谢网友libinwalan的留言提醒.及时纠正路线,继续跟大家一起学习Spring Cloud Alibaba. Nacos作为注册中心和配置中心的基础教程,到这里先告一 ...
- Spring Cloud alibaba网关 sentinel zuul 四 限流熔断
spring cloud alibaba 集成了 他内部开源的 Sentinel 熔断限流框架 Sentinel 介绍 官方网址 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentine ...
- Spring Cloud Alibaba 使用Sentinel实现接口限流
Sentinel是什么 Sentinel的官方标题是:分布式系统的流量防卫兵.从名字上来看,很容易就能猜到它是用来作服务稳定性保障的.对于服务稳定性保障组件,如果熟悉Spring Cloud的用户,第 ...
- 快速体验 Sentinel 集群限流功能,只需简单几步
️ Pic by Alibaba Tech on Facebook 集群限流 可以限制某个资源调用在集群内的总 QPS,并且可以解决单机流量不均导致总的流控效果不佳的问题,是保障服务稳定性的利器. S ...
- Spring Cloud Alibaba系列(五)sentinel实现服务限流降级
一.sentinel是什么 sentinel的官方名称叫分布式系统的流量防卫兵.Sentinel 以流量为切入点,从流量控制.熔断降级.系统负载保护等多个维度保护服务的稳定性.在Spring Clou ...
- springBoot整合Sentinel实现降级限流熔断
由于hystrix的停止更新,以及阿里Sentinel在历年双十一的贡献.项目中使用了Sentinel,今天我们来讲讲Sentinel的入门教程,本文使用1.6.3版本进行讲解 本文通过Sentine ...
- 使用springcloud gateway搭建网关(分流,限流,熔断)
Spring Cloud Gateway Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 ...
- Sentinel整合Dubbo限流实战(分布式限流)
之前我们了解了 Sentinel 集成 SpringBoot实现限流,也探讨了Sentinel的限流基本原理,那么接下去我们来学习一下Sentinel整合Dubbo及 Nacos 实现动态数据源的限流 ...
随机推荐
- 【Android】Android开发小功能,倒计时的实现。时间计时器倒计时功能。
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...
- html中实现倒计时功能(setInterval,clearInterval)
倒计时主要用到的知识点:1.设置时间间隔的setInterval可以被clearInterval取消 2.毫秒转换为时分格式 这个是效果图 下面是js中的函数 var shijian=3600; va ...
- akka-streams - 从应用角度学习:basic stream parts
实际上很早就写了一系列关于akka-streams的博客.但那个时候纯粹是为了了解akka而去学习的,主要是从了解akka-streams的原理为出发点.因为akka-streams是akka系列工具 ...
- 浅析LR.Net工作流引擎
在当代信息化软件系统开发中,工作流引擎是其中非常重要的一环.所谓工作流引擎,是指工作流作为软件系统的一部分, 其中包括了流程的节点管理.流向管理.流程样例管理.审核管理等重要功能. 工作流引擎可根据角 ...
- Wampserver报错、橙色、mysql打不开
Wampserver下的几个常见的问题 最近在弄Wampserver,发现有几个问题存留在这里,今天就来解决一下吧 首先就是关于报错的这个一个问题: 第二就是关于一直不变绿的原因 关于报错: 在我的电 ...
- AWD攻防技战法
round1 弱口令 cat /etc/passwd 查看用户信息 修改用户密码(passwd username) 通过ssh弱口令批量getshell (通过msf的auxiliary/sca ...
- Java并发编程之闭锁与栅栏
一.前言 闭锁与栅栏是在多线程编程中的概念,因为在多线程中,我们不能控制线程的执行状态,所以给线程加锁,让其按照我们的想法有秩序的执行. 闭锁 CountDownLatch,实例化时需要传入一个int ...
- 修改mysql、sqlserver数据库默认用户,不允许为root、sa等
1.mysql cmd进入dos命令,输入mysql -u root -P 1202 -h localhost -p敲回车输入密码 use mysql; 修改用户名root为其他用户 update u ...
- oracle之三手工不完全恢复
手工不完全恢复 4.1 不完全恢复的特点: 1)让整个database 回到过去某个时间点,不能避免数据丢失. 2)想跳过坏日志而继续恢复所有其他工作是不可能的,前滚没有这个功能(考点). 3)必须以 ...
- openstack核心组件——horizon Web管理界面(10)
一.horizon 介绍: 理解 horizon Horizon 为 Openstack 提供一个 WEB 前端的管理界面 (UI 服务 )通过 Horizone 所提供的 DashBoard 服务 ...