前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Cloud Gateway限流(二)

Spring Cloud Gateway限流(二)

原创
作者头像
堕落飞鸟
发布2023-04-11 09:57:10
4250
发布2023-04-11 09:57:10
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

步骤四:配置过滤器

在application.yml文件中配置限流过滤器:

代码语言:javascript
复制
spring:
  cloud:
    gateway:
      default-filters:
        - name: RedisRateLimiter
          args:
            key-resolver: "#{@pathKeyResolver}"
            permits: 10
            duration: 1
            header: X-RateLimit-Header

我们在这里将该过滤器命名为RedisRateLimiter,并设置了一些参数,如key-resolver(用于解析Redis键)、允许的请求数量(permits)、限流时间(duration)和请求头中的标识符(header)。

步骤五:创建键解析器

创建一个名为PathKeyResolver的类来解析Redis键:

代码语言:javascript
复制
@Component
public class PathKeyResolver implements KeyResolver {

    @Override
    public Mono<String> resolve(ServerWebExchange exchange) {
        return Mono.just(exchange.getRequest().getPath().toString());
    }
}

这个解析器简单地将请求路径作为键,使用Mono.just将其包装在Mono容器中,以与Reactive RedisTemplate一起使用。

步骤六:测试限流

现在,我们可以使用Postman等工具测试我们的限流过滤器是否有效了。我们可以使用以下方式来测试:

  1. 使用Postman发送10个请求(或更多)到我们的API端点。
  2. 然后等待1秒钟(或更长时间),再次发送10个请求。
  3. 应该看到第一个批次的所有请求都成功,而第二个批次的所有请求都应该被拒绝,并返回429(过多请求)状态码。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 步骤四:配置过滤器
  • 步骤五:创建键解析器
  • 步骤六:测试限流
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档