| 1234567891011121314151617181920212223 | package userimport (	"context"	"errors"	"github.com/go-kit/kit/endpoint"	"golang.org/x/time/rate")var ErrLimitExceed = errors.New("Rate limit exceed!")// 使用x/time/rate创建限流中间件func NewTokenBucketLimitterWithBuildIn(bkt *rate.Limiter) endpoint.Middleware {	return func(next endpoint.Endpoint) endpoint.Endpoint {		return func(ctx context.Context, request interface{}) (response interface{}, err error) {			if !bkt.Allow() {				return nil, ErrLimitExceed			}			return next(ctx, request)		}	}}
 |