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 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