栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBootGateway 限流功能:

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBootGateway 限流功能:

springBoot GateWay作为所有程序的入口,所以当流量进来的时候都会从网关(GateWay)通过,在网关除了做权限认证过滤,路由转发,还可以做流量限制:

流量限制

springBoot默认是由一个限流的配置,默认集成的配置。

使用的redis配合RateLimter限流算法来实现。

1.引入依赖:


 2.添加配置:

在springBoot 中application.yml 中配置

routes:
‐ id: goods
  uri: lb://XXX
  predicates:
  ‐ Path=/XXX/**
  filters:
  ‐ StripPrefix= 1
  ‐ name: RequestRateLimiter              #添加GateWay请求数限流配置,这个名字不能随便写固定的样式
    args:
      key‐resolver: "#{@ipKeyResolver}"    #这个就是对应自己写限流bean 配置的方法的名称
      redis‐rate‐limiter.replenishRate:  2     #令牌桶每秒填充平均速率
      redis‐rate‐limiter.burstCapacity:  3     #令牌桶总容量

这个就表示每秒并发数为3,如果超过3个那么就会进行限流,或者在filter中加入熔断器设置,这样并发数大了,就会返回一个友好界面。防止直接报错给用户,给用户的体验不好

(3)在启动类中 定义一个KeyResolver

  @Bean
    public KeyResolver ipKeyResolver(){
        return new KeyResolver() {
            @Override
            public Mono resolve(ServerWebExchange exchange) {
                return Mono.just(exchange.getRequest().getRemoteAddress().getHostName());
            }
        };
    }
 

然后就可以自己进行测试测试数据,进行并发测试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/891648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号