使用Zuul中的过滤器结合谷歌提供的工具类RateLimiter达到限流

在网关服务中创建一个过滤器,并添加到容器中

@Component
public class RateLimitFilter extends ZuulFilter {private static final RateLimiter RATE_LIMITER = RateLimiter.create(1);//设置每秒访问的次数,这里是每秒只能被访问一次
@Overridepublic String filterType() {        //设置为前置过滤器return PRE_TYPE;}@Overridepublic int filterOrder() {          //设置优先级,这里设置的优先级是最高级return SERVLET_DETECTION_FILTER_ORDER-1;}@Overridepublic boolean shouldFilter() {return true;}@Overridepublic Object run() throws ZuulException {if(!RATE_LIMITER.tryAcquire()){//这里我们可以直接抛出异常,提示友好信息给用户System.out.println("限流");}return null;}
}

这样可以通过网关实现简单的限流操作

转载于:https://www.cnblogs.com/a-small-lyf/p/10857148.html

在Zuul中设置服务访问限流相关推荐

  1. Spring-Cloud 微服务网关Zuul、ZuulFilter过滤器和限流

    微服务网关 一. Zuul网关 1. 创建工程 并导入依赖 2. application.yml 配置文件 3. 启动类添加注解 4. 依次启动服务 5. 进入浏览器访问测试 二. ZuulFilte ...

  2. 微服务网关限流鉴权-wei-fu-wu-wang-guan-xian-liu--jian-quan

    title: 微服务网关限流&鉴权 date: 2022-01-06 14:40:45.047 updated: 2022-01-06 14:40:45.047 url: https://ww ...

  3. 微服务接口限流的设计与思考(附GitHub框架源码)

    http://www.infoq.com/cn/articles/microservice-interface-rate-limit?useSponsorshipSuggestions=true&am ...

  4. c++突破网关屏蔽_通过API网关实现微服务管控-限流,熔断和降级

    今天准备谈下基于API网关来实现微服务治理管控中的服务限流,熔断和降级方面的内容.在前面谈微服务架构的时候也谈到过类似通过Hystrix,Sentinel来是服务限流熔断.包括也不断地在谈去中心化架构 ...

  5. 微服务4——服务的限流、熔断(Sentinel-三ti no)sca-comsumersca-provider

    mst Sentinel是什么?(阿里推出的一个流量控制平台) 类似Sentinel的产品你知道有什么?(hystrix) Sentinel是如何对请求进行限流的?(基于sentinel依赖提供的拦截 ...

  6. 秒杀限制人群,如何设计秒杀服务的限流策略?

    对于秒杀业务,大家应该比较熟悉了.比如,"某商品原价 1299 元, 双十一整点秒杀价仅 500 元,限量 100 件,先到先得" 等等.通过这段文案我们能够发现,参与秒杀活动商品 ...

  7. ASP.NET Core中使用滑动窗口限流

    滑动窗口算法用于应对请求在时间周期中分布不均匀的情况,能够更精确的应对流量变化,比较著名的应用场景就是TCP协议的流量控制,不过今天要说的是服务限流场景中的应用. 算法原理 这里假设业务需要每秒钟限流 ...

  8. (二)微服务保护——限流规则

    微服务保护--限流规则 一.快速入门: 1.簇点链路: 二.流控模式: (一)三种模式: (二)关联模式: 1.例子: 2. 使用场景: 3.案例: (三)链路模式: 1.例子: 2.案例 三.流控效 ...

  9. Zuul网关优化实践之限流

    为了防止网关过量负载请求,很多时候会要根据实际的情况对接口进行限流.zuul本身是没有提供限流的功能的,但是你也可以根据它提供的filter自己去做限流,当然也可以使用人家已经写好了的限流组件去集成, ...

最新文章

  1. 报文在三次握手过程中丢失怎么办?
  2. FragmentPagerAdapter实现刷新
  3. linux log是什么意思,大家来帮我看看这个LOG是什么意思 英文不好看不懂
  4. python二进制创建写模式_30 个Python代码实现的常用功能,精心整理版
  5. Flutter布局锦囊---轮播图片与滑块
  6. 个人vscode插件配置全记录
  7. Mac OS X 安装ruby环境
  8. Landsat 8数据介绍
  9. Apache DolphinScheduler 3.1.0 版本发布,覆盖机器学习工作流全流程!
  10. 神调侃!程序员专属成长书单,我比女朋友更了解你!
  11. springMVC文件的上传和页面静态化技术
  12. linux Ubuntu系统安装百度aip
  13. 场地预约管理微信小程序开发过程中的错误记录
  14. 物联网模块开发:全面助力万物物联,开启物联网时代
  15. 运用百度智能云车型识别API分析具体车型
  16. 一种重复命名自动更名机制
  17. 加速Pytorch安装的速度
  18. 网易杭研易盾实习心得
  19. 论文阅读三:GHM《Gradient Harmonized Single-stage Detector》
  20. 2.4G无线麦克风无线音频传输模块

热门文章

  1. Ubuntu安装JDK,搭建java环境
  2. jQuery-ui源代码重点难点分析
  3. poj 1502 单源最短路径
  4. js 获取子节点个数
  5. 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件
  6. 分享:从功能增强说起
  7. git pull的理解 以及 git conflict的解决
  8. Access访问错误集锦:Access关键字
  9. 剑指Offer(Java版):把字符串转换成整数
  10. OpenCV中的级联分类器Cascade Classifier(面部识别)