行业知识
【Go】令牌桶限流算法
2026-11-14 01:12:43
来源:互联网转载
1. 限流
限���,顾名思义,限制用户请求流量,避免大规模并发导致系统宕机。
()2. 令牌桶算法
令牌管理员以恒定的速率向令牌桶里放置一个令牌。如果桶满,就丢弃令牌。
请求到达时,都要先去令牌桶里取一个令牌,如果取到令牌,则进行后续业务逻辑操作,否则直接返回。
()3. Go简单实现
package mainimport ("fmt""time")const (rate = 2 // 限制令牌发送速率capacity = 1024 // 令牌桶的容量reqNum = 10 // 并发到达的请求数)func main() {bucket := make(chan struct{}, capacity)go func() {ticker := time.NewTicker(time.Second / rate) // tps=ratedefer ticker.Stop()for range ticker.C {select {case bucket }{}: // 令牌桶未满default: // 令牌桶已满}}}()for i := 0; i
上一篇:怎么购买服务器美橙互联?
下一篇:常用前端技术有哪些?