Pom.xml文件
<groupId>com.giffing.bucket4j.spring.boot.starter</groupId>
<artifactId>bucket4j-spring-boot-starter</artifactId>
<version>0.7.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>jcache</artifactId>
<version>2.8.2</version>
</dependency>
应用程序本地.yml文件
spring:
cache:
cache-names:
- rate-limit-buckets
caffeine:
spec: maximumSize=100000,expireAfterAccess=3600s
bucket4j:
enabled: true
filters:
- cache-name: rate-limit-buckets
filter-method: servlet
strategy: first
url: /patient
http-response-body: "{ \"status\": 429, \"error\": \"Too Many Requests\" }"
rate-limits:
- expression: getRemoteAddr()
bandwidths:
- capacity: 1
time: 30
unit: seconds
我已经将容量设置为1,时间设置为30 s,以便在30 s内收到2个API命中时出现“太多请求”错误,但我没有收到任何错误或任何东西,基本上bucket 4j速率限制甚至没有像看起来那样运行。
是我的应用程序-本地.yml甚至正在加载?早些时候,我在www.example.com文件中的配置application-local.properties和速率限制器是不工作的,也,在探索互联网后,一些人建议使用.yml文件来加载bucket 4j配置,所以我也这样做了,但即使是现在它也不工作。
1条答案
按热度按时间x8diyxa71#
我相信您在配置bucket 4j时也提到了this guide。我能发现的唯一明显的区别是我的配置和您的配置之间的版本。我建议您升级您的依赖项。我使用的是 Boot
应用程序.yml文件
pom.xml文件
注
你可能也想看看the github page。
希望这个有用。