类 TailStateRouter<T>
- java.lang.Object
-
- org.apache.dubbo.rpc.cluster.router.state.TailStateRouter<T>
-
- 所有已实现的接口:
StateRouter<T>
public class TailStateRouter<T> extends Object implements StateRouter<T>
-
-
方法概要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 说明 StringbuildSnapshot()Build Router's Current State Snapshot for QoSstatic <T> TailStateRouter<T>getInstance()org.apache.dubbo.common.URLgetUrl()Get the router url.booleanisForce()To decide whether this router should take effect when none of the invoker can match the router rule, which means theStateRouter.route(BitList, URL, Invocation, boolean, Holder)would be empty.booleanisRuntime()To decide whether this router need to execute every time an RPC comes or should only execute when addresses or rule change.voidnotify(BitList<Invoker<T>> invokers)Notify the router the invoker list.BitList<Invoker<T>>route(BitList<Invoker<T>> invokers, org.apache.dubbo.common.URL url, Invocation invocation, boolean needToPrintMessage, org.apache.dubbo.common.utils.Holder<RouterSnapshotNode<T>> nodeHolder)Filter invokers with current routing rule and only return the invokers that comply with the rule.voidsetNextRouter(StateRouter<T> nextRouter)Notify next router node to current router.-
从接口继承的方法 org.apache.dubbo.rpc.cluster.router.state.StateRouter
stop
-
-
-
-
方法详细资料
-
getInstance
public static <T> TailStateRouter<T> getInstance()
-
setNextRouter
public void setNextRouter(StateRouter<T> nextRouter)
从接口复制的说明:StateRouterNotify next router node to current router.- 指定者:
setNextRouter在接口中StateRouter<T>- 参数:
nextRouter- next router node
-
getUrl
public org.apache.dubbo.common.URL getUrl()
从接口复制的说明:StateRouterGet the router url.- 指定者:
getUrl在接口中StateRouter<T>- 返回:
- url
-
route
public BitList<Invoker<T>> route(BitList<Invoker<T>> invokers, org.apache.dubbo.common.URL url, Invocation invocation, boolean needToPrintMessage, org.apache.dubbo.common.utils.Holder<RouterSnapshotNode<T>> nodeHolder) throws RpcException
从接口复制的说明:StateRouterFilter invokers with current routing rule and only return the invokers that comply with the rule. Caching address lists in BitMap mode improves routing performance.- 指定者:
route在接口中StateRouter<T>- 参数:
invokers- invoker bit listurl- refer urlinvocation- invocationneedToPrintMessage- whether to print router state. Such as `use router branch a`.- 返回:
- state with route result
- 抛出:
RpcException
-
isRuntime
public boolean isRuntime()
从接口复制的说明:StateRouterTo decide whether this router need to execute every time an RPC comes or should only execute when addresses or rule change.- 指定者:
isRuntime在接口中StateRouter<T>- 返回:
- true if the router need to execute every time.
-
isForce
public boolean isForce()
从接口复制的说明:StateRouterTo decide whether this router should take effect when none of the invoker can match the router rule, which means theStateRouter.route(BitList, URL, Invocation, boolean, Holder)would be empty. Most of time, most router implementation would default this value to false.- 指定者:
isForce在接口中StateRouter<T>- 返回:
- true to execute if none of invokers matches the current router
-
notify
public void notify(BitList<Invoker<T>> invokers)
从接口复制的说明:StateRouterNotify the router the invoker list. Invoker list may change from time to time. This method gives the router a chance to prepare beforeStateRouter.route(BitList, URL, Invocation, boolean, Holder)gets called. No need to notify next node.- 指定者:
notify在接口中StateRouter<T>- 参数:
invokers- invoker list
-
buildSnapshot
public String buildSnapshot()
从接口复制的说明:StateRouterBuild Router's Current State Snapshot for QoS- 指定者:
buildSnapshot在接口中StateRouter<T>- 返回:
- Current State
-
-