spring cloud网关(zuul)使用RateLimiter限流,使用jMeter性能测试高并发
原理:使用令牌桶。
固定时间内产生一定数量的令牌,比如设置1秒产生50个令牌,但是1秒内出现了100个用户并发访问,此时只有50个用户能拿到令牌,剩余50直接阻挡,被限流。
核心代码,zuu编写PRE过滤器。
@Component
public class LimitFilter extends ZuulFilter {private static final RateLimiter RATE_LIMITER = RateLimiter.create(1);@Overridepublic String filterType() {return FilterConstants.PRE_TYPE;}@Overridepublic int filterOrder() {return 0;}@Overridepublic boolean shouldFilter() {return true;}@Overridepublic Object run() throws ZuulException {RequestContext currentContext = RequestContext.getCurrentContext();if(RATE_LIMITER.tryAcquire()){System.out.println("通过");}else{System.out.println("限流了");// currentContext.setSendZuulResponse(false);//currentContext.setResponseStatusCode(HttpStatus.TOO_MANY_REQUESTS.value());}return null;}
}
使用谷歌guava包在固定时间内产生固定数据的令牌。比如:
RateLimiter RATE_LIMITER = RateLimiter.create(2);
就是在1秒内产生2个令牌。
使用Jmeter性能测试:
先创建测试计划,选择Threds(uder)->Thread Group
然后在Thread Group 中增加Sampler->HTTP Request
设置每秒用户并发数量。
点击上面的绿色Start按钮即可执行并发请求。
spring cloud网关(zuul)使用RateLimiter限流,使用jMeter性能测试高并发相关推荐
- spring cloud微服务间限流,使用jMeter性能测试高并发
有关网关限流方式查看上一篇博客:spring cloud网关(zuul)限流,使用jMeter性能测试高并发 在网关限流后,有可能有些微服务与网关山的限流不一致,比如网关限流100QPS,而微服务只能 ...
- Spring Cloud Gateway 原生的接口限流该怎么玩
为什么80%的码农都做不了架构师?>>> 关于pig: 基于Spring Cloud.oAuth2.0开发基于Vue前后分离的开发平台,支持账号.短信.SSO等多种登录,提供配 ...
- Spring Cloud Gateway 原生支持接口限流该怎么玩
关于pig: 基于Spring Cloud.oAuth2.0开发基于Vue前后分离的开发平台,支持账号.短信.SSO等多种登录,提供配套视频开发教程. 关于 Spring Cloud Gateway ...
- Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)
文章目录 Spring Cloud入门系列汇总 摘要 Sentinel简介 安装Sentinel控制台 创建sentinel-service模块 限流功能 创建RateLimitController类 ...
- Spring Cloud Gateway自带RequestRateLimiter限流应用及扩展 | Spring Cloud 16
一.限流算法 限流是对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机. 在开发高并发系统时有三把利器用来保护系统: 缓存:缓存的目的是提升系统访问速 ...
- java队列实现限流,java中应对高并发的两种策略
目的:提高可用性 通过ExecutorService实现队列泄洪 //含有20个线程的线程池 private ExecutorService executorService = Executors.n ...
- spring gateway 限流持久化_Spring Cloud Gateway 扩展支持动态限流
之前分享过 一篇 <Spring Cloud Gateway 原生的接口限流该怎么玩>, 核心是依赖Spring Cloud Gateway 默认提供的限流过滤器来实现 原生Request ...
- 14 基于网关Spring Cloud Zuul的接口限流实现方案
在Spring Cloud Zuul网关中,限流业务是放在前置过滤器实现的,也就是在请求被Zuul转发给微服务之前进行限流.另外,当前置过滤器中同时存在限流.鉴权.身份认证等业务时,应该将限流业务放在 ...
- SpringCloud - Spring Cloud 之 Zuul和Gateway网关(十四)
Spring Cloud Gateway是Spring Cloud的一个子项目.而zuul则是Netflix公司的项目,只是Spring 将zuul集成在Spring Cloud中使用而已. 因为zu ...
最新文章
- Debian 8 直接升级到 Debian 9
- 【译】Jumping into Solidity — The ERC721 Standard (Part 2)
- 使用 Sealos + Longhorn 部署 KubeSphere v3.0.0
- couchdb java 连接_CouchDB客户端连接的说明---Java版
- 服务器微信了早上好,每天早上好的问候语 微信早安问候语合集66句
- 吴恩达新公司曝光:签下富士康,要用AI变革制造业
- 正在利用0day 时被人发现了,然后我灵机一动……
- LeetCode刷题目录
- mysql配置参数优化提示
- OpenCV---轮廓发现
- win10前置耳机插孔没声音_win10头戴式耳机麦克风没声音怎么办
- Alexa交叉编译(avs-device-sdk)
- ArrayList:获取最大元素?获取最大元素索引?
- 关于微信小程序picker之multiSelector多列选择器
- p站自动收藏画作 post请求,request payload
- cmd命令 从C盘跳到D盘
- T字形路口小车如何要c语言编程,一点通驾校模拟考试
- win10的ie11正确卸载与重新安装
- Python读取wav音频文件
- 如何翻滚截屏_电脑上如何实现滚动截图?用这款工具即可轻松实现!
热门文章
- SAP的client概念
- sap abap好用的函数
- ABAP中有关于换行符,TAB KEY等
- 欠122亿乐视能不能“真还”?数据拆解乐视债务账单
- 大商超的2020:转型、收紧、试新
- linux 匹配文本中的ip,linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)
- java serializable用法_JAVA序列化Serializable及Externalizable区别详解
- linux中终端字符界面打印QQ,教你如何在开发驱动时在图形界面下的终端打印字符!!...
- 在Ubuntu虚拟机中编译运行C程序
- linux 报错 E: 无法定位软件包 python-lzma