优点: 实现简单,性能好(计数器 + 当前窗口时间即可) 很适合每秒、每分钟那种定量控制场景 缺点: 边界突发,比如 10:00:59 来10个,10:01:00又来10个,就变成1秒内来了20个,系统有可能扛不住(容易“抖动”)
这是 固定窗口 算法 本身的缺点 可以考虑 用 漏桶算法 或者 令牌桶算法
给我写一个吧 @walkor
其他算法实现起来会比较复杂,性能也很差,一些特别高并发的业务 webman/rate-limiter 使用这些复杂算法后自身可能成为瓶颈,得不偿失。 绝大部分业务 固定窗口 算法够用了,如果你的业务对于这种秒级抖动敏感就自己实现一个吧
这是 固定窗口 算法 本身的缺点
可以考虑 用 漏桶算法 或者 令牌桶算法
给我写一个吧 @walkor
其他算法实现起来会比较复杂,性能也很差,一些特别高并发的业务 webman/rate-limiter 使用这些复杂算法后自身可能成为瓶颈,得不偿失。
绝大部分业务 固定窗口 算法够用了,如果你的业务对于这种秒级抖动敏感就自己实现一个吧