主要有两种实现方式,分别是固定窗口和滑动窗口,并且分析了 go-zero 采用固定窗口方式实现的源码。 但是采用固定窗口实现的限流器会有两个问题: 会出现请求量超出限制值两倍的情况 无法很好处理流量突增问题 这篇文章来介绍一下令牌桶算法,可以很好解决以上两个问题。 工作原理 算法概念如下: 令牌以固定速率生成; 生...
对go-zero 支持用泛型改写,我们持谨慎态度,因为一旦使用泛型,那么 Go 版本必须从 1.15 升级到 1.18,很多用户的线上服务现在还未升级到最新版,所以 go-zero 的泛型改写会延后 Go 两三个版本,确保用户线上服务大部分已经升级到 Go 1.18 go-zero也在对泛型做充分的调研和尝试。 其中的mr包已经新开仓库支持了泛型...