Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddrMetadata ¶ added in v1.5.5
type AddrMetadata interface {
// Source indicates where the metadata comes from.
Source() string
}
AddrMetadta is address metadata, collected from a snapshot of address list by a router, if it implements Poolable.
type AddrPool ¶ added in v1.5.5
AddrPool is an address pool, backed by a snapshot of address list, divided into categories.
type BaseRouterRule ¶ added in v1.4.0
type BaseRouterRule struct {
RawRule string
Runtime bool
Force bool
Valid bool
Enabled bool
Priority int
Dynamic bool
Scope string
Key string
}
BaseRouterRule
type Cache ¶ added in v1.5.5
type Cache interface {
// GetInvokers returns the snapshot of received invokers.
GetInvokers() []protocol.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 ¶ added in v1.4.0
type Chain interface {
Route(*common.URL, protocol.Invocation) []protocol.Invoker
// Refresh invokers
SetInvokers([]protocol.Invoker)
// AddRouters Add routers
AddRouters([]PriorityRouter)
// GetNotifyChan get notify channel of this chain
GetNotifyChan() chan struct{}
// Detect Route State
DetectRoute() (RouteSnapshot, error)
// listens on events to update the address cache
Loop()
}
Chain
type ConnChecker ¶ added in v1.5.6
type ConnChecker interface {
// IsConnHealthy evaluates the healthy state on the given Invoker
IsConnHealthy(invoker protocol.Invoker) bool
}
ConnChecker is used to determine whether the invoker is healthy or not
type FilePriorityRouterFactory ¶ added in v1.5.0
type FilePriorityRouterFactory interface {
// NewFileRouters Create file router with config file
NewFileRouter([]byte) (PriorityRouter, error)
}
FilePriorityRouterFactory creates priority router with parse config file
type HealthChecker ¶ added in v1.4.0
type HealthChecker interface {
// IsHealthy evaluates the healthy state on the given Invoker
IsHealthy(invoker protocol.Invoker) bool
}
HealthChecker is used to determine whether the invoker is healthy or not
type Poolable ¶ added in v1.5.5
type Poolable interface {
// Pool created address pool and address metadata from the invokers.
Pool([]protocol.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 ¶ added in v1.5.0
type PriorityRouter interface {
// Priority Return Priority in router
// 0 to ^int(0) is better
Priority() int64
// contains filtered or unexported methods
}
Router
type PriorityRouterDetecter ¶ added in v1.5.7
PriorityRouterDetecter detect the router
type PriorityRouterFactory ¶ added in v1.5.0
type PriorityRouterFactory interface {
// NewPriorityRouter creates router instance with URL
NewPriorityRouter(*common.URL, chan struct{}) (PriorityRouter, error)
}
Extension - Router PriorityRouterFactory creates creates priority router with url
type RouteSnapshot ¶ added in v1.5.7
RouteSnapshot is the snapshot of Route
func (*RouteSnapshot) AddRouteSnapshot ¶ added in v1.5.7
func (rs *RouteSnapshot) AddRouteSnapshot(msg string)
nolint