Spring Cloud Zuul 限流组件ratelimit配置示例及自定义key生成策略

本文介绍了如何在Spring Cloud Zuul中使用ratelimit组件进行限流配置,并通过自定义RateLimitKeyGenerator解决限流策略不生效的问题。通过分析源码,发现因key生成策略导致的限制未按预期执行,最终通过重写key方法避免了key冲突,实现了针对不同URL的定制化限流。
摘要由CSDN通过智能技术生成
<dependency>
	<groupId>com.marcosbarbero.cloud</groupId>
	<artifactId>spring-cloud-zuul-ratelimit</artifactId>
	<version>1.7.1.RELEASE</version>
</dependency>

ratelimit项目源码地址:https://github.com/marcosbarbero/spring-cloud-zuul-ratelimit

这是我使用的spring-cloud-zuul-ratelimit版本,在使用之前我参考了Github上官方给出的配置示例,但不是很详细,没有具体给出针对多个URL做不同的限流配置,网上也没有相关的介绍,于是初步看了一下配置类的源码,按照配置类的格式做了针对不同URL做不同限流的配置,下面贴出我的配置

zuul:
  routes: 
    service_a:
      path: /v1/service-a/**
      serviceId: service_a
  ratelimit:
    key-prefix: service_a
    enabled: true
    behind-proxy: true
    repository: IN_MEMORY
    policy-list:
      service_a:
        - limit: 2
          refresh-interval: 10
          type:
            - type: url
              matcher: /t1
            - type: url
              matcher: /t2
            #- type: user
            #  matcher: system_admin
            #- type: origin
            #  matcher: localhost           
        - limit: 5
          refresh-interval: 20
          type:
            - type: url
              matcher: /t3
           #- type: user
           #  matcher: system_admin
           #- type: origin
           #  matcher: localhost

policy-list实际上是一个map<String,list<policy>>,其中的string也就是对应着service_a这个自定义服务名,它对应着多个policy

@Valid
@NotNull
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值