Documentation
¶
Index ¶
- type AddrMetadata
- type AddrPool
- type Cache
- type Chain
- type Option
- func WithConditions(conditions []string) Option
- func WithEnabled(enabled bool) Option
- func WithForce(force bool) Option
- func WithKey(key string) Option
- func WithPriority(priority int) Option
- func WithRuntime(runtime bool) Option
- func WithScope(scope string) Option
- func WithTags(tags []global.Tag) Option
- func WithValid(valid bool) Option
- type Options
- type Poolable
- type PriorityRouter
- type PriorityRouterFactory
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 ¶
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 WithEnabled ¶ added in v3.3.1
func WithPriority ¶ added in v3.3.1
func WithRuntime ¶ added in v3.3.1
type Options ¶ added in v3.3.1
type Options struct {
Router *global.RouterConfig
}
func NewOptions ¶ added in v3.3.1
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