# rate 按秒配额的带宽限速器:为读写字节流提供令牌补充式限速(字节数/秒), 常配合 `conn` 包使用。 > 迁移自 go-hua/rate,代码保持原样。 ## 用法 ```go import "git.zeroonesoft.cn/golib/zogo/rate" r := rate.NewRate(512 * 1024) // 512 KB/s;0 表示不限速 r.Start() // 启动每秒配额补充 defer r.Stop() r.Add(n) // 每次读/写后上报本秒已消耗字节数,超配额时 Add 阻塞到下个周期 r.SetLimit(1024 * 1024) // 动态调整限速 used := r.GetNow() // 本秒已消耗 ``` 完整可运行例程:[examples/rate/main.go](../examples/rate/main.go) ## 注意 - `NewRate(0)` 为不限速模式,`Add` 直接放行。 - 限速粒度为秒级令牌桶,短时突发精度有限;逐连接限速在 `conn` 中叠加使用。