MCPcopy Create free account
hub / github.com/astercloud/aster / NewLimiterFromConfig

Function NewLimiterFromConfig

server/ratelimit/middleware.go:95–111  ·  view source on GitHub ↗

NewLimiterFromConfig 从配置创建限流器

(config Config)

Source from the content-addressed store, hash-verified

93
94// NewLimiterFromConfig 从配置创建限流器
95func NewLimiterFromConfig(config Config) Limiter {
96 if config.Algorithm == "sliding_window" {
97 return NewSlidingWindowLimiter(config.RequestsPerIP, config.WindowSize)
98 }
99
100 // 默认使用令牌桶
101 rate := config.RequestsPerIP / int(config.WindowSize.Seconds())
102 if rate == 0 {
103 rate = 1
104 }
105 capacity := config.BurstSize
106 if capacity == 0 {
107 capacity = config.RequestsPerIP
108 }
109
110 return NewTokenBucketLimiter(rate, capacity, config.WindowSize)
111}

Callers 1

Calls 2

NewSlidingWindowLimiterFunction · 0.85
NewTokenBucketLimiterFunction · 0.85

Tested by

no test coverage detected