[pkg] time/rate
- time/rate @ go.pkg
- Golang 標準庫限流器 time/rate 使用介紹
- Golang time/rate 限速器 @ 簡書
重要概念
在 Golang 中使用 Limiter 來控制在特定頻率內,某個事件是否允許被執行。這個 Limiter 是實作 Token Bucket 的方式來達到限流的目的,也就是會先設定:
- event rate(r):將 token 放入桶子的頻率,例如每秒將放入 n 個 token 到桶子(bucket)中。
- burst size(b):一個桶子(bucket)中能夠容納的 token 數量
一開始桶子會是滿的,只要桶子中有剩餘的 Token 就可以取用,若沒有剩餘的 Token 則需要等待後才能取用。
建立 Limiter:NewLimiter
keywords: NewLimiter
使用 NewLimiter
來建立一個 non-zero Limiter:
func NewLimiter(r Limit, b int) *Limiter