该库是基于令牌桶算法实现的
import "github.com/juju/ratelimit"
var tokenBucket ratelimit.Bucket = nil
func init() {
// func NewBucket(fillInterval time.Duration, capacity int64) *Bucket
// fillInterval令牌填充的时间间隔
// capacity令牌桶的最大容量
tokenBucket = ratelimit.NewBucket(200time.Millisecond, 20)
}func Handler() {
available := tokenBucket.TakeAvailable(1)
if available <= 0 {
// 限流处理
}
// handling
}