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.
  • Constructor Details

    • DiscoveryNode

      public DiscoveryNode​(java.lang.String id, TransportAddress address, Version version)
      Creates a new DiscoveryNode

      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 remote 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 address
      version - 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<DiscoveryNodeRole> roles, Version version)
      Creates a new DiscoveryNode

      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 remote 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 address
      attributes - node attributes
      roles - node roles
      version - 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<DiscoveryNodeRole> roles, Version version)
      Creates a new DiscoveryNode

      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 remote node. After initial handshakes node versions will be discovered and updated.

      Parameters:
      nodeName - the nodes name
      nodeId - the nodes unique persistent id. An ephemeral id will be auto generated.
      address - the nodes transport address
      attributes - node attributes
      roles - node roles
      version - 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<DiscoveryNodeRole> roles, Version version)
      Creates a new DiscoveryNode.

      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 remote node. After initial handshakes node versions will be discovered and updated.

      Parameters:
      nodeName - the nodes name
      nodeId - the nodes unique persistent id
      ephemeralId - the nodes unique ephemeral id
      hostAddress - the nodes host address
      address - the nodes transport address
      attributes - node attributes
      roles - node roles
      version - the version of the node
    • DiscoveryNode

      public DiscoveryNode​(StreamInput in) throws java.io.IOException
      Creates a new DiscoveryNode 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 Details

    • 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<DiscoveryNodeRole> 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.
      Specified by:
      writeTo in interface Writeable
      Throws:
      java.io.IOException
    • 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's getId() 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 in equals(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<DiscoveryNodeRole> 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 class java.lang.Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • toXContent

      public XContentBuilder toXContent​(XContentBuilder builder, ToXContent.Params params) throws java.io.IOException
      Specified by:
      toXContent in interface ToXContent
      Throws:
      java.io.IOException
    • setPossibleRoles

      public static void setPossibleRoles​(java.util.Set<DiscoveryNodeRole> possibleRoles)
    • getPossibleRoleNames

      public static java.util.Set<java.lang.String> getPossibleRoleNames()