例如在@RateLimit(dimensions = {RateLimit.Dimension.GLOBAL, RateLimit.Dimension.IP}, count = 5) 这里限流维度是数组,现在有多个维度,但是共用着同一个count令牌总数,GLOBAL 通常会成为先触发的“瓶颈”,IP 限流只有在全局配额未耗尽时才会生效,因此在高并发场景下看起来像“失效”。 我的做法是把RateLimit这个注解做成可重复,并且在切面合并处理多个注解。
例如在@ratelimit(dimensions = {RateLimit.Dimension.GLOBAL, RateLimit.Dimension.IP}, count = 5) 这里限流维度是数组,现在有多个维度,但是共用着同一个count令牌总数,GLOBAL 通常会成为先触发的“瓶颈”,IP 限流只有在全局配额未耗尽时才会生效,因此在高并发场景下看起来像“失效”。
我的做法是把RateLimit这个注解做成可重复,并且在切面合并处理多个注解。