Class ZookeeperDiscoverySpi
- java.lang.Object
-
- org.apache.ignite.spi.IgniteSpiAdapter
-
- org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpi
-
- All Implemented Interfaces:
org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi,DiscoverySpi,IgniteSpi
@IgniteSpiMultipleInstancesSupport(true) @DiscoverySpiOrderSupport(true) @DiscoverySpiHistorySupport(true) @DiscoverySpiMutableCustomMessageSupport(false) public class ZookeeperDiscoverySpi extends IgniteSpiAdapter implements org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi
Zookeeper Discovery Spi.
-
-
Field Summary
Fields Modifier and Type Field Description static longDFLT_JOIN_TIMEOUTstatic StringDFLT_ROOT_PATH-
Fields inherited from class org.apache.ignite.spi.IgniteSpiAdapter
ignite, igniteInstanceName
-
-
Constructor Summary
Constructors Constructor Description ZookeeperDiscoverySpi()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanallNodesSupport(org.apache.ignite.internal.IgniteFeatures feature)voidclientReconnect()booleanclientReconnectSupported()@Nullable SerializableconsistentId()Gets consistent ID.voiddisconnect()Tells discovery SPI to disconnect from topology.voidfailNode(UUID nodeId, @Nullable String warning)Initiates failure of provided node.DiscoverySpiNodeAuthenticatorgetAuthenticator()longgetGridStartTime()Gets start time of the very first node in the grid.longgetJoinTimeout()ClusterNodegetLocalNode()Gets local node.Map<String,Object>getLocNodeAttrs()@Nullable ClusterNodegetNode(UUID nodeId)Gets node by ID.Collection<ClusterNode>getRemoteNodes()Gets collection of remote nodes in grid or empty collection if no remote nodes found.longgetSessionTimeout()StringgetZkConnectionString()StringgetZkRootPath()booleanisClientMode()Whether or not discovery is started in client mode.booleanisClientReconnectDisabled()Iftrueclient does not try to reconnect.booleanknownNode(UUID nodeId)protected voidonContextInitialized0(IgniteSpiContext spiCtx)Method to be called in the end of onContextInitialized method.booleanpingNode(UUID nodeId)Pings the remote node to see if it's alive.voidresolveCommunicationFailure(ClusterNode node, Exception err)voidsendCustomEvent(DiscoverySpiCustomMessage msg)Sends custom message across the ring.voidsetAuthenticator(DiscoverySpiNodeAuthenticator auth)Sets discovery SPI node authenticator.ZookeeperDiscoverySpisetClientReconnectDisabled(boolean clientReconnectDisabled)Sets client reconnect disabled flag.voidsetDataExchange(DiscoverySpiDataExchange exchange)Sets a handler for initial data exchange between Ignite nodes.voidsetInternalListener(org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpiInternalListener lsnr)For TESTING only.ZookeeperDiscoverySpisetJoinTimeout(long joinTimeout)voidsetListener(@Nullable DiscoverySpiListener lsnr)Sets a listener for discovery events.voidsetMetricsProvider(DiscoveryMetricsProvider metricsProvider)Sets discovery metrics provider.voidsetNodeAttributes(Map<String,Object> attrs, IgniteProductVersion ver)Sets node attributes and node version which will be distributed in grid during join process.ZookeeperDiscoverySpisetSessionTimeout(long sesTimeout)ZookeeperDiscoverySpisetZkConnectionString(String zkConnectionString)ZookeeperDiscoverySpisetZkRootPath(String zkRootPath)voidsimulateNodeFailure()For TESTING only.voidspiStart(@Nullable String igniteInstanceName)This method is called to start SPI.voidspiStop()This method is called to stop SPI.booleansupportsCommunicationFailureResolve()StringtoString()-
Methods inherited from class org.apache.ignite.spi.IgniteSpiAdapter
addTimeoutObject, assertParameter, checkConfigurationConsistency0, clientFailureDetectionTimeout, configInfo, createSpiAttributeName, failureDetectionTimeout, failureDetectionTimeoutEnabled, failureDetectionTimeoutEnabled, getConsistentAttributeNames, getExceptionRegistry, getName, getNodeAttributes, getSpiContext, ignite, initFailureDetectionTimeout, injectables, injectResources, isNodeStopping, onBeforeStart, onClientDisconnected, onClientReconnected, onContextDestroyed, onContextDestroyed0, onContextInitialized, registerMBean, removeTimeoutObject, setName, started, startInfo, startStopwatch, stopInfo, unregisterMBean
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.ignite.spi.IgniteSpi
getName, getNodeAttributes, onClientDisconnected, onClientReconnected, onContextDestroyed, onContextInitialized
-
-
-
-
Field Detail
-
DFLT_ROOT_PATH
public static final String DFLT_ROOT_PATH
- See Also:
- Constant Field Values
-
DFLT_JOIN_TIMEOUT
public static final long DFLT_JOIN_TIMEOUT
- See Also:
- Constant Field Values
-
-
Method Detail
-
getZkRootPath
public String getZkRootPath()
- Returns:
- Base path in ZK for znodes created by SPI.
-
setZkRootPath
@IgniteSpiConfiguration(optional=true) public ZookeeperDiscoverySpi setZkRootPath(String zkRootPath)
- Parameters:
zkRootPath- Base path in ZooKeeper for znodes created by SPI.- Returns:
thisfor chaining.
-
getSessionTimeout
public long getSessionTimeout()
- Returns:
- ZooKeeper session timeout.
-
setSessionTimeout
@IgniteSpiConfiguration(optional=true) public ZookeeperDiscoverySpi setSessionTimeout(long sesTimeout)
- Parameters:
sesTimeout- ZooKeeper session timeout.- Returns:
thisfor chaining.
-
getJoinTimeout
public long getJoinTimeout()
- Returns:
- Cluster join timeout.
-
setJoinTimeout
@IgniteSpiConfiguration(optional=true) public ZookeeperDiscoverySpi setJoinTimeout(long joinTimeout)
- Parameters:
joinTimeout- Cluster join timeout (0means wait forever).- Returns:
thisfor chaining.
-
getZkConnectionString
public String getZkConnectionString()
- Returns:
- ZooKeeper connection string
-
setZkConnectionString
@IgniteSpiConfiguration(optional=false) public ZookeeperDiscoverySpi setZkConnectionString(String zkConnectionString)
- Parameters:
zkConnectionString- ZooKeeper connection string- Returns:
thisfor chaining.
-
isClientReconnectDisabled
public boolean isClientReconnectDisabled()
Iftrueclient does not try to reconnect.- Returns:
- Client reconnect disabled flag.
-
setClientReconnectDisabled
@IgniteSpiConfiguration(optional=true) public ZookeeperDiscoverySpi setClientReconnectDisabled(boolean clientReconnectDisabled)
Sets client reconnect disabled flag.- Parameters:
clientReconnectDisabled- Client reconnect disabled flag.- Returns:
thisfor chaining.
-
clientReconnectSupported
public boolean clientReconnectSupported()
- Specified by:
clientReconnectSupportedin interfaceorg.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi- Returns:
Trueif SPI supports client reconnect.
-
clientReconnect
public void clientReconnect()
- Specified by:
clientReconnectin interfaceorg.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi
-
knownNode
public boolean knownNode(UUID nodeId)
- Specified by:
knownNodein interfaceorg.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi- Parameters:
nodeId- Node ID.- Returns:
Trueif node joining or already joined topology.
-
supportsCommunicationFailureResolve
public boolean supportsCommunicationFailureResolve()
- Specified by:
supportsCommunicationFailureResolvein interfaceorg.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi- Returns:
Trueif supports communication error resolve.
-
resolveCommunicationFailure
public void resolveCommunicationFailure(ClusterNode node, Exception err)
- Specified by:
resolveCommunicationFailurein interfaceorg.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi- Parameters:
node- Problem node.err- Connection error.
-
consistentId
@Nullable public @Nullable Serializable consistentId() throws IgniteSpiException
Gets consistent ID.- Specified by:
consistentIdin interfaceDiscoverySpi- Returns:
- Consistent ID of this Ignite instance or
nullif not applicable. - Throws:
IgniteSpiException- If failed.
-
getRemoteNodes
public Collection<ClusterNode> getRemoteNodes()
Gets collection of remote nodes in grid or empty collection if no remote nodes found.- Specified by:
getRemoteNodesin interfaceDiscoverySpi- Returns:
- Collection of remote nodes.
-
allNodesSupport
public boolean allNodesSupport(org.apache.ignite.internal.IgniteFeatures feature)
- Specified by:
allNodesSupportin interfaceorg.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi- Parameters:
feature- Feature to check.- Returns:
trueif all nodes support the given feature.
-
getLocalNode
public ClusterNode getLocalNode()
Gets local node.- Specified by:
getLocalNodein interfaceDiscoverySpi- Overrides:
getLocalNodein classIgniteSpiAdapter- Returns:
- Local node.
-
getNode
@Nullable public @Nullable ClusterNode getNode(UUID nodeId)
Gets node by ID.- Specified by:
getNodein interfaceDiscoverySpi- Parameters:
nodeId- Node ID.- Returns:
- Node with given ID or
nullif node is not found.
-
pingNode
public boolean pingNode(UUID nodeId)
Pings the remote node to see if it's alive.- Specified by:
pingNodein interfaceDiscoverySpi- Parameters:
nodeId- Node Id.- Returns:
trueif node alive,falseotherwise.
-
setNodeAttributes
public void setNodeAttributes(Map<String,Object> attrs, IgniteProductVersion ver)
Sets node attributes and node version which will be distributed in grid during join process. Note that these attributes cannot be changed and set only once. set- Specified by:
setNodeAttributesin interfaceDiscoverySpi- Parameters:
attrs- Map of node attributes.ver- Product version.
-
setListener
public void setListener(@Nullable @Nullable DiscoverySpiListener lsnr)Sets a listener for discovery events. Refer toDiscoveryEventfor a set of all possible discovery events.TODO: This method should be removed from public API in Apache Ignite 3.0
- Specified by:
setListenerin interfaceDiscoverySpi- Parameters:
lsnr- Listener to discovery events ornullto unset the listener.
-
setDataExchange
public void setDataExchange(DiscoverySpiDataExchange exchange)
Sets a handler for initial data exchange between Ignite nodes.- Specified by:
setDataExchangein interfaceDiscoverySpi- Parameters:
exchange- Discovery data exchange handler.
-
setMetricsProvider
public void setMetricsProvider(DiscoveryMetricsProvider metricsProvider)
Sets discovery metrics provider. Use metrics provided byDiscoveryMetricsProvider.metrics()method to exchange dynamic metrics between nodes.- Specified by:
setMetricsProviderin interfaceDiscoverySpi- Parameters:
metricsProvider- Provider of metrics data.
-
disconnect
public void disconnect() throws IgniteSpiExceptionTells discovery SPI to disconnect from topology. This is very close to callingIgniteSpi.spiStop()with accounting that it is not a full stop, but disconnect due to segmentation.- Specified by:
disconnectin interfaceDiscoverySpi- Throws:
IgniteSpiException- If any error occurs.
-
setAuthenticator
public void setAuthenticator(DiscoverySpiNodeAuthenticator auth)
Sets discovery SPI node authenticator. This method is called before SPI start() method.- Specified by:
setAuthenticatorin interfaceDiscoverySpi- Parameters:
auth- Discovery SPI authenticator.
-
getAuthenticator
public DiscoverySpiNodeAuthenticator getAuthenticator()
- Returns:
- Authenticator.
-
getGridStartTime
public long getGridStartTime()
Gets start time of the very first node in the grid. This value should be the same on all nodes in the grid and it should not change even if very first node fails of leaves grid.- Specified by:
getGridStartTimein interfaceDiscoverySpi- Returns:
- Start time of the first node in grid or
0if SPI implementation does not support this method.
-
sendCustomEvent
public void sendCustomEvent(DiscoverySpiCustomMessage msg)
Sends custom message across the ring.- Specified by:
sendCustomEventin interfaceDiscoverySpi- Parameters:
msg- Custom message.
-
failNode
public void failNode(UUID nodeId, @Nullable @Nullable String warning)
Initiates failure of provided node.- Specified by:
failNodein interfaceDiscoverySpi- Parameters:
nodeId- Node ID.warning- Warning to be shown on all cluster nodes.
-
isClientMode
public boolean isClientMode() throws IllegalStateExceptionWhether or not discovery is started in client mode.- Specified by:
isClientModein interfaceDiscoverySpi- Returns:
trueif node is in client mode.- Throws:
IllegalStateException- If discovery SPI has not started.
-
spiStart
public void spiStart(@Nullable @Nullable String igniteInstanceName) throws IgniteSpiExceptionThis method is called to start SPI. After this method returns successfully kernel assumes that SPI is fully operational.- Specified by:
spiStartin interfaceIgniteSpi- Parameters:
igniteInstanceName- Name of Ignite instance this SPI is being started for (nullfor default Ignite instance).- Throws:
IgniteSpiException- Throws in case of any error during SPI start.
-
onContextInitialized0
protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException
Method to be called in the end of onContextInitialized method.- Overrides:
onContextInitialized0in classIgniteSpiAdapter- Parameters:
spiCtx- SPI context.- Throws:
IgniteSpiException- In case of errors.
-
setInternalListener
public void setInternalListener(org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpiInternalListener lsnr)
For TESTING only.- Specified by:
setInternalListenerin interfaceorg.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi- Parameters:
lsnr- Listener.
-
simulateNodeFailure
public void simulateNodeFailure()
For TESTING only.- Specified by:
simulateNodeFailurein interfaceorg.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi
-
spiStop
public void spiStop() throws IgniteSpiExceptionThis method is called to stop SPI. After this method returns kernel assumes that this SPI is finished and all resources acquired by it are released.Note that this method can be called at any point including during recovery of failed start. It should make no assumptions on what state SPI will be in when this method is called.
- Specified by:
spiStopin interfaceIgniteSpi- Throws:
IgniteSpiException- Thrown in case of any error during SPI stop.
-
-