纯 golang 实现精确实现滑动窗口限流,支持本地持久化,性能远超用 redis 实现的方案 (约 250 万/s)

yudeguang · · 5189 次点击
你可能还不清楚为什么要用redis,因为要涉及多台物理机,哪个语言做不到进程内存访问数百万qps?
#1
更多评论
………… 你不用redis我能理解。 但是,这种功能肯定是一个网关啊…… 不带http的反向代理测出来的数据毫无意义。 带了http的话,会发现走内存没啥意义。 而且这种功能肯定是实现一个接口,然后写一个内存驱动一个redis驱动……
#2
这个可以自行封装一个HTTP服务,或者其它协议,比较简单,此处并没有实现。 相比redis方案,此方案主要在于: 1)简单,无依赖,至少你不用再装一个redis; 2)内存波动很小,不会有频繁的gc操作(但缺点也有,与此对应的是,初始化的时候,就预先分配了较大的内存); 3)性能并不是问题的关键,虽然确实比redis快很多。
#3