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)
     }
文档更新时间: 2024-04-20 10:57   作者:lee