router

package
v3.3.1 Latest Latest
Warning

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

Go to latest
Published: Dec 27, 2025 License: Apache-2.0 Imports: 4 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddrMetadata

type AddrMetadata interface {
	// Source indicates where the metadata comes from.
	Source() string
}

AddrMetadata is address metadata, collected from a snapshot of address list by a router, if it implements Poolable.

type AddrPool

type AddrPool map[string]*roaring.Bitmap

AddrPool is an address pool, backed by a snapshot of address list, divided into categories.

type Cache

type Cache interface {
	// GetInvokers returns the snapshot of received invokers.
	GetInvokers() []base.Invoker

	// FindAddrPool returns address pool associated with the given Poolable instance.
	FindAddrPool(Poolable) AddrPool

	// FindAddrMeta returns address metadata associated with the given Poolable instance.
	FindAddrMeta(Poolable) AddrMetadata
}

Cache caches all addresses relevant info for a snapshot of received invokers. It keeps a snapshot of the received address list, and also keeps address pools and address metadata from routers based on the same address snapshot, if the router implements Poolable.

type Chain

type Chain interface {
	Route(*common.URL, base.Invocation) []base.Invoker
	// Refresh invokers
	SetInvokers([]base.Invoker)
	// AddRouters Add routers
	AddRouters([]PriorityRouter)
}

type Option added in v3.3.1

type Option func(*Options)

func WithConditions added in v3.3.1

func WithConditions(conditions []string) Option

func WithEnabled added in v3.3.1

func WithEnabled(enabled bool) Option

func WithForce added in v3.3.1

func WithForce(force bool) Option

func WithKey added in v3.3.1

func WithKey(key string) Option

func WithPriority added in v3.3.1

func WithPriority(priority int) Option

func WithRuntime added in v3.3.1

func WithRuntime(runtime bool) Option

func WithScope added in v3.3.1

func WithScope(scope string) Option

func WithTags added in v3.3.1

func WithTags(tags []global.Tag) Option

func WithValid added in v3.3.1

func WithValid(valid bool) Option

type Options added in v3.3.1

type Options struct {
	Router *global.RouterConfig
}

func NewOptions added in v3.3.1

func NewOptions(opts ...Option) *Options

type Poolable

type Poolable interface {
	// Pool created address pool and address metadata from the invokers.
	Pool([]base.Invoker) (AddrPool, AddrMetadata)

	// ShouldPool returns if it should pool. One typical scenario is a router rule changes, in this case, a pooling
	// is necessary, even if the addresses not changed at all.
	ShouldPool() bool

	// Name return the Poolable's name.
	Name() string
}

Poolable caches address pool and address metadata for a router instance which will be used later in Router's Route.

type PriorityRouter

type PriorityRouter interface {
	// Route Determine the target invokers list.
	Route([]base.Invoker, *common.URL, base.Invocation) []base.Invoker

	// URL Return URL in router
	URL() *common.URL

	// Priority Return Priority in router
	// 0 to ^int(0) is better
	Priority() int64

	// Notify the router the invoker list
	Notify(invokers []base.Invoker)
}

PriorityRouter routes with priority

type PriorityRouterFactory

type PriorityRouterFactory interface {
	// NewPriorityRouter creates router instance with URL
	NewPriorityRouter(url *common.URL) (PriorityRouter, error)
}

PriorityRouterFactory creates priority router with url

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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