Joh*_*y19 5 spring spring-mvc limit rate redis
我正在寻找实现(或使用已设置的)速率限制器的最佳,更有效的方法,该速率限制器将保护我所有的剩余api网址。我正在查看的保护是“每个用户限制器每秒的通话次数”
我在网上看了一下,结果是使用了“ Redis”或Guava RateLimiter。
老实说,我从未使用过Redis,但我真的不熟悉它。但是通过查看其文档,看来它具有相当强大的速率限制器系统。
我也看过番石榴的RateLimiter。而且它看起来更易于使用(不需要安装Redis等)
因此,我想提出一些“就我而言”最佳解决方案的建议?使用Redis太多了吗?
你们有没有尝试过RateLimter?这是一个好的解决方案吗?可伸缩吗?
PS:如果您认为有更好的选择,那么我也愿意接受除上述2种解决方案之外的其他解决方案。
谢谢!
如果您试图限制对基于 Spring 的 REST api 的访问,您应该使用令牌桶算法。
有一个bucket4j-spring-boot-starter项目,它使用bucket4j库来限制对REST api的访问。您可以通过应用程序属性文件对其进行配置。有一个选项可以根据 IP 地址或用户名限制访问。
如果您使用Netflix Zuul,您可以使用Spring Cloud Zuul RateLimit,它使用不同的存储选项:Consul、Redis、Spring Data 和 Bucket4j。
没有硬性规定,完全取决于您的具体情况。假如“我从来没有用过Redis”,我会推荐guava RateLimiter。与redis这个全新的nosql系统相比,guava RateLimiter更容易上手。通过添加几行代码,您就可以以可配置的速率分发许可证。剩下要做的就是调整它以满足您的需求,例如为每个用户提供速率限制。
| 归档时间: |
|
| 查看次数: |
8403 次 |
| 最近记录: |