1. 算法实现:
    令牌桶算法
  2. 用法:
    package main
    import (
     "fmt"
     "golang.org/x/time/rate"
     "net/http"
    )
    func main() {
     // 每秒产生 10个令牌,桶中最多保存 20个令牌
     limiter := rate.NewLimiter(10, 20)
     // 等同于以下表达式(即每 100毫秒产生一个令牌)
     // limiter := rate.NewLimiter(rate.Every(100 * time.Second), 20)
     http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
         if limiter.Allow() {
             fmt.Println("正常访问...")
         }else{
             fmt.Println("限制访问...")
         }
     })
     _ = http.ListenAndServe(":8080", nil)
    }
文档更新时间: 2021-11-26 10:59   作者:lee