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

yudeguang · 2021-04-12 16:27:18 · 5515 次点击

…………

你不用redis我能理解。

但是,这种功能肯定是一个网关啊……

不带http的反向代理测出来的数据毫无意义。

带了http的话,会发现走内存没啥意义。

而且这种功能肯定是实现一个接口,然后写一个内存驱动一个redis驱动……

#2
更多评论

你可能还不清楚为什么要用redis,因为要涉及多台物理机,哪个语言做不到进程内存访问数百万qps?

#1

这个可以自行封装一个HTTP服务,或者其它协议,比较简单,此处并没有实现。 相比redis方案,此方案主要在于: 1)简单,无依赖,至少你不用再装一个redis; 2)内存波动很小,不会有频繁的gc操作(但缺点也有,与此对应的是,初始化的时候,就预先分配了较大的内存); 3)性能并不是问题的关键,虽然确实比redis快很多。

#3