- All Implemented Interfaces:
Closeable,AutoCloseable,LifecycleComponent,Releasable
FollowersChecker.
The connectToNodes(DiscoveryNodes, Runnable) and disconnectFromNodesExcept(DiscoveryNodes) methods are called on the ClusterApplier thread. This component
allows the ClusterApplier to block on forming connections to _new_ nodes, because the rest of the system treats a missing
connection with another node in the cluster state as an exceptional condition and we don't want this to happen to new nodes. However we
need not block on re-establishing existing connections because if a connection is down then we are already in an exceptional situation
and it doesn't matter much if we stay in this situation a little longer.
This component does not block on disconnections at all, because a disconnection might need to wait for an ongoing (background) connection attempt to complete first.
-
Field Summary
FieldsModifier and TypeFieldDescriptionFields inherited from class org.elasticsearch.common.component.AbstractLifecycleComponent
lifecycle -
Constructor Summary
ConstructorsConstructorDescriptionNodeConnectionsService(Settings settings, ThreadPool threadPool, TransportService transportService) -
Method Summary
Modifier and TypeMethodDescriptionvoidconnectToNodes(DiscoveryNodes discoveryNodes, Runnable onCompletion) Connect to all the given nodes, but do not disconnect from any extra nodes.voiddisconnectFromNodesExcept(DiscoveryNodes discoveryNodes) Disconnect from any nodes to which we are currently connected which do not appear in the given nodes.protected voiddoClose()Close this component.protected voiddoStart()Start this component.protected voiddoStop()Stop this component.voidreconnectToNodes(DiscoveryNodes discoveryNodes, Runnable onCompletion) Methods inherited from class org.elasticsearch.common.component.AbstractLifecycleComponent
addLifecycleListener, close, lifecycleState, start, stop
-
Field Details
-
CLUSTER_NODE_RECONNECT_INTERVAL_SETTING
-
-
Constructor Details
-
NodeConnectionsService
@Inject public NodeConnectionsService(Settings settings, ThreadPool threadPool, TransportService transportService)
-
-
Method Details
-
connectToNodes
Connect to all the given nodes, but do not disconnect from any extra nodes. Calls the completion handler on completion of all connection attempts to _new_ nodes, without waiting for any attempts to re-establish connections to nodes that were already known. -
disconnectFromNodesExcept
Disconnect from any nodes to which we are currently connected which do not appear in the given nodes. Does not wait for the disconnections to complete, because they might have to wait for ongoing connection attempts first. -
doStart
protected void doStart()Description copied from class:AbstractLifecycleComponentStart this component. Typically that means doing things like launching background processes and registering listeners on other components. Other components have been initialized by this point, but may not yet be started.If this method throws an exception then the startup process will fail, but this component will not be stopped before it is closed.
This method is called while synchronized on
AbstractLifecycleComponent.lifecycle. It is only called once in the lifetime of a component, although it may not be called at all if the startup process encountered some kind of fatal error, such as the failure of some other component to initialize or start.- Specified by:
doStartin classAbstractLifecycleComponent
-
doStop
protected void doStop()Description copied from class:AbstractLifecycleComponentStop this component. Typically that means doing the reverse of whateverAbstractLifecycleComponent.doStart()does.This method is called while synchronized on
AbstractLifecycleComponent.lifecycle. It is only called once in the lifetime of a component, after callingAbstractLifecycleComponent.doStart(), although it will not be called at all if this component did not successfully start.- Specified by:
doStopin classAbstractLifecycleComponent
-
doClose
protected void doClose()Description copied from class:AbstractLifecycleComponentClose this component. Typically that means doing the reverse of whatever happened during initialization, such as releasing resources acquired there.This method is called while synchronized on
AbstractLifecycleComponent.lifecycle. It is called once in the lifetime of a component. If the component was started then it will be stopped before it is closed, and once it is closed it will not be started or stopped.- Specified by:
doClosein classAbstractLifecycleComponent
-
reconnectToNodes
-