golang实现令牌桶限流效果代码

代码语言:golang

所属分类:其他

代码描述:golang实现令牌桶限流效果代码,使用了golang.org/x/time/rate包,每秒产生一定的令牌,获取令牌即可执行,未获取返回。

代码标签: golang 令牌桶 限流

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

package main

import (
	"context"
	"log"
	"time"

	"golang.org/x/time/rate"
)

func main() {
	//TODO limit每秒产生Token数量,burst最多存放Token数量
	limit := rate.Every(time.Second * 1)
	limiter := rate.NewLimiter(limit, 5)
	log.Println(limiter.Limit(), limiter.Burst())
	for i := 0; i < 10; i++ {
		//TODO 阻塞等待,直到获取一个Token
		log.Println("before wait")
		c, _ := context.WithTimeout(context.Background(), time.Second*2)
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0