Help us shape the future of Go! Take the 2026 Go Developer Survey

filter

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2025 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessKeyPair

type AccessKeyPair struct {
	AccessKey    string `yaml:"accessKey"   json:"accessKey,omitempty" property:"accessKey"`
	SecretKey    string `yaml:"secretKey"   json:"secretKey,omitempty" property:"secretKey"`
	ConsumerSide string `yaml:"consumerSide"   json:"consumerSide,omitempty" property:"consumerSide"`
	ProviderSide string `yaml:"providerSide"   json:"providerSide,omitempty" property:"providerSide"`
	Creator      string `yaml:"creator"   json:"creator,omitempty" property:"creator"`
	Options      string `yaml:"options"   json:"options,omitempty" property:"options"`
}

AccessKeyPair stores the basic attributes for authentication.

type AccessKeyStorage

type AccessKeyStorage interface {
	GetAccessKeyPair(protocol.Invocation, *common.URL) *AccessKeyPair
}

AccessKeyStorage supports us to store our AccessKeyPair or load AccessKeyPair from other storage, such as filesystem.

type Authenticator

type Authenticator interface {

	// Sign adds signature to the invocation
	Sign(protocol.Invocation, *common.URL) error

	// Authenticate verifies the signature of the request
	Authenticate(protocol.Invocation, *common.URL) error
}

Authenticator defines how an Authenticator works. Custom Authenticator must be set by calling auth.SetAuthenticator before use.

type Filter

type Filter interface {
	// Invoke is the core function of a filter, it determines the process of the filter
	Invoke(context.Context, protocol.Invoker, protocol.Invocation) protocol.Result
	// OnResponse updates the results from Invoke and then returns the modified results.
	OnResponse(context.Context, protocol.Result, protocol.Invoker, protocol.Invocation) protocol.Result
}

Filter interface defines the functions of a filter Extension - Filter

type RejectedExecutionHandler

type RejectedExecutionHandler interface {

	// RejectedExecution will be called if the invocation was rejected by some component.
	RejectedExecution(url *common.URL, invocation protocol.Invocation) protocol.Result
}

RejectedExecutionHandler defines the handler to handle exceptions from invoking filters. *

  • If the invocation cannot pass any validation in filter, like ExecuteLimitFilter and TpsLimitFilter,
  • the implementation will be used.
  • The common case is that sometimes you want to return the default value when the request was rejected.
  • Or you want to be warned if any request was rejected.
  • In such situation, implement this interface and register it by invoking extension.SetRejectedExecutionHandler.

type TpsLimitStrategy

type TpsLimitStrategy interface {
	// IsAllowable will return true if this invocation is not over limitation
	IsAllowable() bool
}

TpsLimitStrategy defines how to do the TPS limiting in method level.

  • please register your implementation by invoking SetTpsLimitStrategy
  • "UserProvider":
  • registry: "hangzhouzk"
  • protocol : "dubbo"
  • interface : "com.ikurento.user.UserProvider"
  • ... # other configuration
  • tps.limiter: "method-service" # the name of limiter
  • tps.limit.strategy: "name of implementation" # service-level
  • methods:
  • - name: "GetUser"
  • tps.interval: 3000
  • tps.limit.strategy: "name of implementation" # method-level

type TpsLimitStrategyCreator

type TpsLimitStrategyCreator interface {
	// Create will create an instance of TpsLimitStrategy
	// It will be a little hard to understand this method.
	// The unit of interval is ms
	// for example, if the limit = 100, interval = 1000
	// which means that the tps limitation is 100 times per 1000ms (100/1000ms)
	Create(limit int, interval int) TpsLimitStrategy
}

TpsLimitStrategyCreator is the creator abstraction for TpsLimitStrategy

type TpsLimiter

type TpsLimiter interface {
	// IsAllowable will check whether this invocation should be enabled for further process
	IsAllowable(*common.URL, protocol.Invocation) bool
}

TpsLimiter defines the Limiter that judge if the TPS overs the threshold

  • please register your implementation by invoking SetTpsLimiter
  • The usage, for example:
  • "UserProvider":
  • registry: "hangzhouzk"
  • protocol : "dubbo"
  • interface : "com.ikurento.user.UserProvider"
  • ... # other configuration
  • tps.limiter: "the name of limiter",

Directories

Path Synopsis
tps
Package filter is a generated GoMock package.
Package filter is a generated GoMock package.
Package filter is a generated GoMock package.
Package filter is a generated GoMock package.

Jump to

Keyboard shortcuts

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