qps

package
v1.8.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 7, 2020 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package qps supply functionality about QPS for example rate limiting

Index

Constants

View Source
const (
	DefaultRate = 2147483647
)

constant qps default rate

View Source
const Prefix = "cse.flowcontrol"

Prefix is const

Variables

This section is empty.

Functions

func GetQPSRate

func GetQPSRate(rateConfig string) (int, bool)

GetQPSRate get qps rate

Types

type ConsumerKeys

type ConsumerKeys struct {
	MicroServiceName       string
	SchemaQualifiedName    string
	OperationQualifiedName string
}

ConsumerKeys contain consumer keys

func GetConsumerKey

func GetConsumerKey(sourceName, serviceName, schemaID, OperationID string) *ConsumerKeys

GetConsumerKey get specific key for consumer

func (*ConsumerKeys) GetMicroServiceName

func (op *ConsumerKeys) GetMicroServiceName() string

GetMicroServiceName get micro-service name

func (*ConsumerKeys) GetMicroServiceSchemaOpQualifiedName

func (op *ConsumerKeys) GetMicroServiceSchemaOpQualifiedName() string

GetMicroServiceSchemaOpQualifiedName get micro-service schema operation qualified name

func (*ConsumerKeys) GetSchemaQualifiedName

func (op *ConsumerKeys) GetSchemaQualifiedName() string

GetSchemaQualifiedName get schema qualified name

type ProviderKeys

type ProviderKeys struct {
	Global          string
	ServiceOriented string
}

ProviderKeys contain provider keys

func GetProviderKey

func GetProviderKey(sourceServiceName string) *ProviderKeys

GetProviderKey get specific key for provider

type RateLimiters

type RateLimiters struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

RateLimiters qps limiter map struct

func GetRateLimiters

func GetRateLimiters() *RateLimiters

GetRateLimiters get qps rate limiters

func (*RateLimiters) DeleteRateLimiter

func (qpsL *RateLimiters) DeleteRateLimiter(key string)

DeleteRateLimiter delete rate limiter

func (*RateLimiters) GetQPSRateWithPriority

func (qpsL *RateLimiters) GetQPSRateWithPriority(cmd ...string) (int, string)

GetQPSRateWithPriority get qps rate with priority

func (*RateLimiters) TryAccept

func (qpsL *RateLimiters) TryAccept(key string, qpsRate int) bool

TryAccept process qps token request

func (*RateLimiters) UpdateRateLimit

func (qpsL *RateLimiters) UpdateRateLimit(key string, value interface{})

UpdateRateLimit update or add rate limiter

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL