1、简述
在现实世界中可能会出现服务器被虚假请求轰炸的情况,因此您可能希望控制这种虚假的请求。
一些实际使用情形可能如下所示:
-
API配额管理-作为提供者,您可能希望根据用户的付款情况限制向服务器发出API请求的速率。这可以在客户端或服务端实现。
-
安全性-防止DDOS攻击。
-
成本控制–这对服务方甚至客户方来说都不是必需的。如果某个组件以非常高的速率发出一个事件,它可能有助于控制它,它可能有助于控制从客户端发送的请求。
常见的限流算法:令牌桶算法, 漏桶算法。比较成熟的有分布式hystrix, sentinel,还有guava高并发限流ratelimiter。本文主要是介绍Redis如何对指定的key进行计数限流的。
2、引用和配置
引用redis的maven包,包括客户端连接插件jedis。
<dependency>
<groupId>org.springframework.boot</groupId