Class DiscoveryNode
- java.lang.Object
-
- org.elasticsearch.cluster.node.DiscoveryNode
-
- All Implemented Interfaces:
Writeable
,ToXContent
,ToXContentFragment
public class DiscoveryNode extends java.lang.Object implements Writeable, ToXContentFragment
A discovery node represents a node that is part of the cluster.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DiscoveryNode.Role
Enum that holds all the possible roles that that a node can fulfill in a cluster.-
Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.Params
-
Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V>
-
-
Field Summary
-
Fields inherited from interface org.elasticsearch.common.xcontent.ToXContent
EMPTY_PARAMS
-
-
Constructor Summary
Constructors Constructor Description DiscoveryNode(java.lang.String nodeName, java.lang.String nodeId, java.lang.String ephemeralId, java.lang.String hostName, java.lang.String hostAddress, TransportAddress address, java.util.Map<java.lang.String,java.lang.String> attributes, java.util.Set<DiscoveryNode.Role> roles, Version version)
Creates a newDiscoveryNode
.DiscoveryNode(java.lang.String nodeName, java.lang.String nodeId, TransportAddress address, java.util.Map<java.lang.String,java.lang.String> attributes, java.util.Set<DiscoveryNode.Role> roles, Version version)
Creates a newDiscoveryNode
DiscoveryNode(java.lang.String id, TransportAddress address, java.util.Map<java.lang.String,java.lang.String> attributes, java.util.Set<DiscoveryNode.Role> roles, Version version)
Creates a newDiscoveryNode
DiscoveryNode(java.lang.String id, TransportAddress address, Version version)
Creates a newDiscoveryNode
DiscoveryNode(StreamInput in)
Creates a newDiscoveryNode
by reading from the stream provided as argument
-
Method Summary
Modifier and Type Method Description static DiscoveryNode
createLocal(Settings settings, TransportAddress publishAddress, java.lang.String nodeId)
Creates a DiscoveryNode representing the local node.boolean
equals(java.lang.Object o)
TransportAddress
getAddress()
The address that the node can be communicated with.java.util.Map<java.lang.String,java.lang.String>
getAttributes()
The node attributes.java.lang.String
getEphemeralId()
The unique ephemeral id of the node.java.lang.String
getHostAddress()
java.lang.String
getHostName()
java.lang.String
getId()
The unique id of the node.java.lang.String
getName()
The name of the node.java.util.Set<DiscoveryNode.Role>
getRoles()
Returns a set of all the roles that the node fulfills.static java.util.Set<DiscoveryNode.Role>
getRolesFromSettings(Settings settings)
extract node roles from the given settingsVersion
getVersion()
int
hashCode()
boolean
isDataNode()
Should this node hold data (shards) or not.static boolean
isDataNode(Settings settings)
boolean
isIngestNode()
Returns a boolean that tells whether this an ingest node or notstatic boolean
isIngestNode(Settings settings)
boolean
isMasterNode()
Can this node become master or not.static boolean
isMasterNode(Settings settings)
static boolean
nodeRequiresLocalStorage(Settings settings)
java.lang.String
toString()
XContentBuilder
toXContent(XContentBuilder builder, ToXContent.Params params)
void
writeTo(StreamOutput out)
Write this into the StreamOutput.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.elasticsearch.common.xcontent.ToXContentFragment
isFragment
-
-
-
-
Constructor Detail
-
DiscoveryNode
public DiscoveryNode(java.lang.String id, TransportAddress address, Version version)
Creates a newDiscoveryNode
Note: if the version of the node is unknown
Version.minimumCompatibilityVersion()
should be used for the current version. it corresponds to the minimum version this elasticsearch version can communicate with. If a higher version is used the node might not be able to communicate with the remove node. After initial handshakes node versions will be discovered and updated.- Parameters:
id
- the nodes unique (persistent) node id. This constructor will auto generate a random ephemeral id.address
- the nodes transport addressversion
- the version of the node
-
DiscoveryNode
public DiscoveryNode(java.lang.String id, TransportAddress address, java.util.Map<java.lang.String,java.lang.String> attributes, java.util.Set<DiscoveryNode.Role> roles, Version version)
Creates a newDiscoveryNode
Note: if the version of the node is unknown
Version.minimumCompatibilityVersion()
should be used for the current version. it corresponds to the minimum version this elasticsearch version can communicate with. If a higher version is used the node might not be able to communicate with the remove node. After initial handshakes node versions will be discovered and updated.- Parameters:
id
- the nodes unique (persistent) node id. This constructor will auto generate a random ephemeral id.address
- the nodes transport addressattributes
- node attributesroles
- node rolesversion
- the version of the node
-
DiscoveryNode
public DiscoveryNode(java.lang.String nodeName, java.lang.String nodeId, TransportAddress address, java.util.Map<java.lang.String,java.lang.String> attributes, java.util.Set<DiscoveryNode.Role> roles, Version version)
Creates a newDiscoveryNode
Note: if the version of the node is unknown
Version.minimumCompatibilityVersion()
should be used for the current version. it corresponds to the minimum version this elasticsearch version can communicate with. If a higher version is used the node might not be able to communicate with the remove node. After initial handshakes node versions will be discovered and updated.- Parameters:
nodeName
- the nodes namenodeId
- the nodes unique persistent id. An ephemeral id will be auto generated.address
- the nodes transport addressattributes
- node attributesroles
- node rolesversion
- the version of the node
-
DiscoveryNode
public DiscoveryNode(java.lang.String nodeName, java.lang.String nodeId, java.lang.String ephemeralId, java.lang.String hostName, java.lang.String hostAddress, TransportAddress address, java.util.Map<java.lang.String,java.lang.String> attributes, java.util.Set<DiscoveryNode.Role> roles, Version version)
Creates a newDiscoveryNode
.Note: if the version of the node is unknown
Version.minimumCompatibilityVersion()
should be used for the current version. it corresponds to the minimum version this elasticsearch version can communicate with. If a higher version is used the node might not be able to communicate with the remove node. After initial handshakes node versions will be discovered and updated.- Parameters:
nodeName
- the nodes namenodeId
- the nodes unique persistent idephemeralId
- the nodes unique ephemeral idhostAddress
- the nodes host addressaddress
- the nodes transport addressattributes
- node attributesroles
- node rolesversion
- the version of the node
-
DiscoveryNode
public DiscoveryNode(StreamInput in) throws java.io.IOException
Creates a newDiscoveryNode
by reading from the stream provided as argument- Parameters:
in
- the stream- Throws:
java.io.IOException
- if there is an error while reading from the stream
-
-
Method Detail
-
nodeRequiresLocalStorage
public static boolean nodeRequiresLocalStorage(Settings settings)
-
isMasterNode
public static boolean isMasterNode(Settings settings)
-
isDataNode
public static boolean isDataNode(Settings settings)
-
isIngestNode
public static boolean isIngestNode(Settings settings)
-
createLocal
public static DiscoveryNode createLocal(Settings settings, TransportAddress publishAddress, java.lang.String nodeId)
Creates a DiscoveryNode representing the local node.
-
getRolesFromSettings
public static java.util.Set<DiscoveryNode.Role> getRolesFromSettings(Settings settings)
extract node roles from the given settings
-
writeTo
public void writeTo(StreamOutput out) throws java.io.IOException
Description copied from interface:Writeable
Write this into the StreamOutput.
-
getAddress
public TransportAddress getAddress()
The address that the node can be communicated with.
-
getId
public java.lang.String getId()
The unique id of the node.
-
getEphemeralId
public java.lang.String getEphemeralId()
The unique ephemeral id of the node. Ephemeral ids are meant to be attached the life span of a node process. When ever a node is restarted, it's ephemeral id is required to change (while it'sgetId()
will be read from the data folder and will remain the same across restarts). Since all node attributes and addresses are maintained during the life span of a node process, we can (and are) using the ephemeralId inequals(Object)
.
-
getName
public java.lang.String getName()
The name of the node.
-
getAttributes
public java.util.Map<java.lang.String,java.lang.String> getAttributes()
The node attributes.
-
isDataNode
public boolean isDataNode()
Should this node hold data (shards) or not.
-
isMasterNode
public boolean isMasterNode()
Can this node become master or not.
-
isIngestNode
public boolean isIngestNode()
Returns a boolean that tells whether this an ingest node or not
-
getRoles
public java.util.Set<DiscoveryNode.Role> getRoles()
Returns a set of all the roles that the node fulfills. If the node doesn't have any specific role, the set is returned empty, which means that the node is a coordinating only node.
-
getVersion
public Version getVersion()
-
getHostName
public java.lang.String getHostName()
-
getHostAddress
public java.lang.String getHostAddress()
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
toXContent
public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws java.io.IOException
- Specified by:
toXContent
in interfaceToXContent
- Throws:
java.io.IOException
-
-