Class SingleRouterChain<T>

java.lang.Object
org.apache.dubbo.rpc.cluster.SingleRouterChain<T>

public class SingleRouterChain<T> extends Object
Router chain
  • Constructor Details

  • Method Details

    • initWithRouters

      public void initWithRouters(List<Router> builtinRouters)
      the resident routers must being initialized before address notification. only for ut
    • addRouters

      public void addRouters(List<Router> routers)
      If we use route:// protocol in version before 2.7.0, each URL will generate a Router instance, so we should keep the routers up to date, that is, each time router URLs changes, we should update the routers list, only keep the builtinRouters which are available all the time and the latest notified routers which are generated from URLs.
      Parameters:
      routers - routers from 'router://' rules in 2.6.x or before.
    • getRouters

      public List<Router> getRouters()
    • getHeadStateRouter

      public StateRouter<T> getHeadStateRouter()
    • route

      public List<Invoker<T>> route(org.apache.dubbo.common.URL url, BitList<Invoker<T>> availableInvokers, Invocation invocation)
    • routeAndPrint

      public List<Invoker<T>> routeAndPrint(org.apache.dubbo.common.URL url, BitList<Invoker<T>> availableInvokers, Invocation invocation)
    • simpleRoute

      public List<Invoker<T>> simpleRoute(org.apache.dubbo.common.URL url, BitList<Invoker<T>> availableInvokers, Invocation invocation)
    • buildRouterSnapshot

      public RouterSnapshotNode<T> buildRouterSnapshot(org.apache.dubbo.common.URL url, BitList<Invoker<T>> availableInvokers, Invocation invocation)
      Build each router's result
    • setInvokers

      public void setInvokers(BitList<Invoker<T>> invokers)
      Notify router chain of the initial addresses from registry at the first time. Notify whenever addresses in registry change.
    • setHeadStateRouter

      @Deprecated public void setHeadStateRouter(StateRouter<T> headStateRouter)
      Deprecated.
      for uts only
    • getStateRouters

      @Deprecated public List<StateRouter<T>> getStateRouters()
      Deprecated.
      for uts only
    • getLock

      public ReadWriteLock getLock()
    • destroy

      public void destroy()