原理:使用令牌桶。

固定时间内产生一定数量的令牌,比如设置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性能测试高并发相关推荐

  1. spring cloud微服务间限流,使用jMeter性能测试高并发

    有关网关限流方式查看上一篇博客:spring cloud网关(zuul)限流,使用jMeter性能测试高并发 在网关限流后,有可能有些微服务与网关山的限流不一致,比如网关限流100QPS,而微服务只能 ...

  2. Spring Cloud Gateway 原生的接口限流该怎么玩

    为什么80%的码农都做不了架构师?>>>    关于pig: 基于Spring Cloud.oAuth2.0开发基于Vue前后分离的开发平台,支持账号.短信.SSO等多种登录,提供配 ...

  3. Spring Cloud Gateway 原生支持接口限流该怎么玩

    关于pig: 基于Spring Cloud.oAuth2.0开发基于Vue前后分离的开发平台,支持账号.短信.SSO等多种登录,提供配套视频开发教程. 关于 Spring Cloud Gateway ...

  4. Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 Sentinel简介 安装Sentinel控制台 创建sentinel-service模块 限流功能 创建RateLimitController类 ...

  5. Spring Cloud Gateway自带RequestRateLimiter限流应用及扩展 | Spring Cloud 16

    一.限流算法 限流是对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机. 在开发高并发系统时有三把利器用来保护系统: 缓存:缓存的目的是提升系统访问速 ...

  6. java队列实现限流,java中应对高并发的两种策略

    目的:提高可用性 通过ExecutorService实现队列泄洪 //含有20个线程的线程池 private ExecutorService executorService = Executors.n ...

  7. spring gateway 限流持久化_Spring Cloud Gateway 扩展支持动态限流

    之前分享过 一篇 <Spring Cloud Gateway 原生的接口限流该怎么玩>, 核心是依赖Spring Cloud Gateway 默认提供的限流过滤器来实现 原生Request ...

  8. 14 基于网关Spring Cloud Zuul的接口限流实现方案

    在Spring Cloud Zuul网关中,限流业务是放在前置过滤器实现的,也就是在请求被Zuul转发给微服务之前进行限流.另外,当前置过滤器中同时存在限流.鉴权.身份认证等业务时,应该将限流业务放在 ...

  9. SpringCloud - Spring Cloud 之 Zuul和Gateway网关(十四)

    Spring Cloud Gateway是Spring Cloud的一个子项目.而zuul则是Netflix公司的项目,只是Spring 将zuul集成在Spring Cloud中使用而已. 因为zu ...

最新文章

  1. Debian 8 直接升级到 Debian 9
  2. 【译】Jumping into Solidity — The ERC721 Standard (Part 2)
  3. 使用 Sealos + Longhorn 部署 KubeSphere v3.0.0
  4. couchdb java 连接_CouchDB客户端连接的说明---Java版
  5. 服务器微信了早上好,每天早上好的问候语 微信早安问候语合集66句
  6. 吴恩达新公司曝光:签下富士康,要用AI变革制造业
  7. 正在利用0day 时被人发现了,然后我灵机一动……
  8. LeetCode刷题目录
  9. mysql配置参数优化提示
  10. OpenCV---轮廓发现
  11. win10前置耳机插孔没声音_win10头戴式耳机麦克风没声音怎么办
  12. Alexa交叉编译(avs-device-sdk)
  13. ArrayList:获取最大元素?获取最大元素索引?
  14. 关于微信小程序picker之multiSelector多列选择器
  15. p站自动收藏画作 post请求,request payload
  16. cmd命令 从C盘跳到D盘
  17. T字形路口小车如何要c语言编程,一点通驾校模拟考试
  18. win10的ie11正确卸载与重新安装
  19. Python读取wav音频文件
  20. 如何翻滚截屏_电脑上如何实现滚动截图?用这款工具即可轻松实现!

热门文章

  1. SAP的client概念
  2. sap abap好用的函数
  3. ABAP中有关于换行符,TAB KEY等
  4. 欠122亿乐视能不能“真还”?数据拆解乐视债务账单
  5. 大商超的2020:转型、收紧、试新
  6. linux 匹配文本中的ip,linux文本三剑客匹配网卡IP地址大PK(CentOS 7系统)
  7. java serializable用法_JAVA序列化Serializable及Externalizable区别详解
  8. linux中终端字符界面打印QQ,教你如何在开发驱动时在图形界面下的终端打印字符!!...
  9. 在Ubuntu虚拟机中编译运行C程序
  10. linux 报错 E: 无法定位软件包 python-lzma