接口 StateRouter<T>

    • 方法详细资料

      • getUrl

        org.apache.dubbo.common.URL getUrl()
        Get the router url.
        返回:
        url
      • route

        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
        Filter invokers with current routing rule and only return the invokers that comply with the rule. Caching address lists in BitMap mode improves routing performance.
        参数:
        invokers - invoker bit list
        url - refer url
        invocation - invocation
        needToPrintMessage - whether to print router state. Such as `use router branch a`.
        返回:
        state with route result
        抛出:
        RpcException
        从以下版本开始:
        3.0
      • isRuntime

        boolean isRuntime()
        To decide whether this router need to execute every time an RPC comes or should only execute when addresses or rule change.
        返回:
        true if the router need to execute every time.
      • isForce

        boolean isForce()
        To decide whether this router should take effect when none of the invoker can match the router rule, which means the route(BitList, URL, Invocation, boolean, Holder) would be empty. Most of time, most router implementation would default this value to false.
        返回:
        true to execute if none of invokers matches the current router
      • buildSnapshot

        String buildSnapshot()
        Build Router's Current State Snapshot for QoS
        返回:
        Current State
      • stop

        default void stop()
      • setNextRouter

        void setNextRouter​(StateRouter<T> nextRouter)
        Notify next router node to current router.
        参数:
        nextRouter - next router node