Documentation
¶
Overview ¶
Package limiter is to control the links that go into the dispatcher
Index ¶
- type IPData
- type InboundInfo
- type Limiter
- func (l *Limiter) AddInboundLimiter(tag string, expiry int, nodeSpeedLimit uint64, ...) error
- func (l *Limiter) DeleteInboundLimiter(tag string) error
- func (l *Limiter) DeleteSubscriptionBuckets(tag string, emails []string)
- func (l *Limiter) DrainDeltas(tag string, tc *counter.TrafficCounter) *PendingTraffic
- func (l *Limiter) GetLimiter(tag string, email string, ip string) (limiter *rate.Limiter, isSpeedLimited bool, Reject bool)
- func (l *Limiter) GetOnlineIPs(tag string) (*[]api.OnlineIP, error)
- func (l *Limiter) RateTimeoutReader(reader buf.TimeoutReader, limiter *rate.Limiter) buf.TimeoutReader
- func (l *Limiter) RateWriter(writer buf.Writer, limiter *rate.Limiter) buf.Writer
- func (l *Limiter) ResetTraffic(pending *PendingTraffic)
- func (l *Limiter) UpdateInboundLimiter(tag string, updatedServiceList *[]api.SubscriptionInfo) error
- type PendingTraffic
- type RedisConfig
- type SubscriptionInfo
- type TimeoutReader
- type Writer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type InboundInfo ¶
type Limiter ¶
func (*Limiter) AddInboundLimiter ¶
func (l *Limiter) AddInboundLimiter(tag string, expiry int, nodeSpeedLimit uint64, subscriptionList *[]api.SubscriptionInfo, redisConfig *RedisConfig) error
func (*Limiter) DeleteInboundLimiter ¶
func (*Limiter) DeleteSubscriptionBuckets ¶
func (*Limiter) DrainDeltas ¶
func (l *Limiter) DrainDeltas(tag string, tc *counter.TrafficCounter) *PendingTraffic
func (*Limiter) GetLimiter ¶
func (*Limiter) RateTimeoutReader ¶
func (l *Limiter) RateTimeoutReader(reader buf.TimeoutReader, limiter *rate.Limiter) buf.TimeoutReader
func (*Limiter) RateWriter ¶
func (*Limiter) ResetTraffic ¶
func (l *Limiter) ResetTraffic(pending *PendingTraffic)
func (*Limiter) UpdateInboundLimiter ¶
func (l *Limiter) UpdateInboundLimiter(tag string, updatedServiceList *[]api.SubscriptionInfo) error
type PendingTraffic ¶
type PendingTraffic struct {
Result []api.SubscriptionTraffic
Counters []pendingCounter
}
type RedisConfig ¶
type RedisConfig struct {
Enable bool `mapstructure:"Enable"`
Network string `mapstructure:"Network"` // tcp or unix
Addr string `mapstructure:"Addr"` // host:port, or /path/to/unix.sock
Username string `mapstructure:"Username"`
Password string `mapstructure:"Password"`
DB int `mapstructure:"DB"`
Timeout int `mapstructure:"Timeout"`
}
type SubscriptionInfo ¶
type TimeoutReader ¶
type TimeoutReader struct {
Reader buf.TimeoutReader
Limiter *rate.Limiter
}
func (*TimeoutReader) Interrupt ¶
func (r *TimeoutReader) Interrupt()
func (*TimeoutReader) ReadMultiBuffer ¶
func (r *TimeoutReader) ReadMultiBuffer() (buf.MultiBuffer, error)
func (*TimeoutReader) ReadMultiBufferTimeout ¶
func (r *TimeoutReader) ReadMultiBufferTimeout(timeout time.Duration) (buf.MultiBuffer, error)
Click to show internal directories.
Click to hide internal directories.