概述
在高并发系统中,限流是一种重要的保护机制,用于控制请求流量,防止系统被过多请求冲击导致服务不可用。本文将基于提供的代码实现,详细介绍如何使用Spring AOP和Redis实现一个灵活的分布式限流组件。
该例子利用mysql进行黑名单的自动登记。
限流组件架构
1. 自定义限流注解 - RateLimiter
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimiter {
String key() default "rate_limit:";
int time() default 60;
int count() default 5;
LimitType limitType() default LimitType.DEFAULT;
boolean joinBlackList() default false;
}
大约 4 分钟