gpt4 book ai didi

spring - 对 API 进行速率限制(spring MVC)

转载 作者:IT王子 更新时间:2023-10-29 06:01:37 25 4
gpt4 key购买 nike

我正在寻找实现(或使用已设置的)速率限制器的最佳、更有效的方法,以保护我所有的 rest api url。我正在查看的保护是“每个用户每秒调用限制器”

我在网上看了一下,结果是使用“Redis”或 Guava RateLimiter。

说实话我没用过Redis,对它也不是很熟悉。但是通过查看它的文档,它似乎有一个非常强大的速率限制器系统。

我也看过 Guava 的 RateLimiter。而且它看起来更容易使用(不需要安装 redis 等...)

所以我想就“在我的情况下”最好的解决方案提出一些建议?使用 Redis 是不是“太多了”?

你们中有人已经尝试过 RateLimter 了吗?这是一个好的解决方案吗?是否可扩展?

PS:如果您认为有更好的选择,我也愿意接受除上述 2 种解决方案之外的其他解决方案。

谢谢!

最佳答案

如果您试图限制对基于 Spring 的 REST api 的访问,您应该使用 token-bucket algorithm .

bucket4j-spring-boot-starter使用 bucket4j 的项目库以限制对 REST api 的访问。您可以通过应用程序属性文件对其进行配置。有一个选项 limit the access based on IP address or username .

如果您使用 Netflix Zuul你可以使用 Spring Cloud Zuul RateLimit它使用不同的存储选项:Consul、Redis、Spring Data 和 Bucket4j。

关于spring - 对 API 进行速率限制(spring MVC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com