Class TcpDiscoveryNode

    • Constructor Detail

      • TcpDiscoveryNode

        public TcpDiscoveryNode()
        Public default no-arg constructor for Externalizable interface.
      • TcpDiscoveryNode

        public TcpDiscoveryNode​(ClusterNode node)
        IMPORTANT! Only purpose of this constructor is creating node which contains necessary data to store on disc only
        Parameters:
        node - to copy data from
    • Method Detail

      • lastSuccessfulAddress

        @Nullable
        public @Nullable InetSocketAddress lastSuccessfulAddress()
        Returns:
        Last successfully connected address.
      • lastSuccessfulAddress

        public void lastSuccessfulAddress​(InetSocketAddress lastSuccessfulAddr)
        Parameters:
        lastSuccessfulAddr - Last successfully connected address.
      • id

        public UUID id()
        Gets globally unique node ID. A new ID is generated every time a node restarts.
        Specified by:
        id in interface ClusterNode
        Returns:
        Globally unique node ID.
      • setConsistentId

        public void setConsistentId​(Serializable consistentId)
        Sets consistent globally unique node ID which survives node restarts.
        Specified by:
        setConsistentId in interface IgniteClusterNode
        Parameters:
        consistentId - Consistent globally unique node ID.
      • attribute

        public <T> T attribute​(String name)
        Gets a node attribute. Attributes are assigned to nodes at startup via IgniteConfiguration.getUserAttributes() method.

        The system adds the following attributes automatically:

        • {@link System#getProperties()} - All system properties.
        • {@link System#getenv(String)} - All environment properties.
        • All attributes defined in IgniteNodeAttributes

        Note that attributes cannot be changed at runtime.

        Specified by:
        attribute in interface BaselineNode
        Specified by:
        attribute in interface ClusterNode
        Type Parameters:
        T - Attribute Type.
        Parameters:
        name - Attribute name. Note that attribute names starting with org.apache.ignite are reserved for internal use.
        Returns:
        Attribute value or null.
      • setAttributes

        public void setAttributes​(Map<String,​Object> attrs)
        Sets node attributes.
        Parameters:
        attrs - Node attributes.
      • getAttributes

        public Map<String,​Object> getAttributes()
        Gets node attributes without filtering.
        Returns:
        Node attributes without filtering.
      • cacheMetrics

        public Map<Integer,​CacheMetrics> cacheMetrics()
        Gets collections of cache metrics for this node. Note that node cache metrics are constantly updated and provide up to date information about caches.

        Cache metrics are updated with some delay which is directly related to metrics update frequency. For example, by default the update will happen every 2 seconds.

        Specified by:
        cacheMetrics in interface IgniteClusterNode
        Returns:
        Runtime metrics snapshots for this node.
      • internalOrder

        public long internalOrder()
        Returns:
        Internal order.
      • internalOrder

        public void internalOrder​(long intOrder)
        Parameters:
        intOrder - Internal order of the node.
      • order

        public long order()
        Description copied from interface: ClusterNode
        Node order within grid topology. Discovery SPIs that support node ordering will assign a proper order to each node and will guarantee that discovery event notifications for new nodes will come in proper order. All other SPIs not supporting ordering may choose to return node startup time here.

        NOTE: in cases when discovery SPI doesn't support ordering Ignite cannot guarantee that orders on all nodes will be unique or chronologically correct. If such guarantee is required - make sure use discovery SPI that provides ordering.

        Specified by:
        order in interface ClusterNode
        Returns:
        Order.
      • order

        public void order​(long order)
        Parameters:
        order - Order of the node.
      • addresses

        public Collection<String> addresses()
        Gets collection of addresses this node is known by.

        If IgniteConfiguration.getLocalHost() value isn't null node will try to use that address for all communications and returned collection will contain only that address. If it is null then local wildcard address will be used, and Ignite will make the best effort to supply all addresses of that node in returned collection.

        Specified by:
        addresses in interface ClusterNode
        Returns:
        Collection of addresses.
      • isLocal

        public boolean isLocal()
        Tests whether or not this node is a local node.
        Specified by:
        isLocal in interface ClusterNode
        Returns:
        True if this node is a local node, false otherwise.
      • local

        public void local​(boolean loc)
        Parameters:
        loc - Grid local node flag.
      • hostNames

        public Collection<String> hostNames()
        Gets collection of host names this node is known by.

        If IgniteConfiguration.getLocalHost() value isn't null node will try to use the host name of that resolved address for all communications and returned collection will contain only that host name. If that host name can not be resolved then ip address returned by method ClusterNode.addresses() is used.

        If IgniteConfiguration.getLocalHost() value is null then local wildcard address will be used, and this method returns host names of all addresses of that node.

        Note: the loopback address will be omitted in results.

        Specified by:
        hostNames in interface ClusterNode
        Returns:
        Collection of host names.
      • discoveryPort

        public int discoveryPort()
        Returns:
        Discovery port.
      • lastUpdateTime

        public long lastUpdateTime()
        Gets node last update time. Used for logging purposes only.
        Note that this method tries to convert nanoTime internal JVM time format into a regular timestamp. This might lead to errors if there was GC between measuring of current timestamp and current nano time, but generally it might be ignored.
        Returns:
        Time of the last metrics update.
        See Also:
        System.currentTimeMillis(), System.nanoTime()
      • lastUpdateTimeNanos

        public long lastUpdateTimeNanos()
        Gets node last update time.
        Returns:
        Time of the last metrics update as returned by System.nanoTime().
      • lastUpdateTimeNanos

        public void lastUpdateTimeNanos​(long lastUpdateTimeNanos)
        Sets node last update.
        Parameters:
        lastUpdateTimeNanos - Time of last metrics update.
      • lastExchangeTimeNanos

        public long lastExchangeTimeNanos()
        Gets the last time a node exchanged a message with a remote node.
        Returns:
        Time in nanoseconds as returned by System.nanoTime().
      • lastExchangeTime

        public void lastExchangeTime​(long lastExchangeTimeNanos)
        Sets the last time a node exchanged a message with a remote node.
        Parameters:
        lastExchangeTimeNanos - Time in nanoseconds.
      • visible

        public boolean visible()
        Gets visible flag.
        Returns:
        true if node is in visible state.
      • visible

        public void visible​(boolean visible)
        Sets visible flag.
        Parameters:
        visible - true if node is in visible state.
      • isClientAlive

        public boolean isClientAlive()
        Test alive check time value.
        Returns:
        True if client alive, False otherwise.
      • clientAliveTime

        public void clientAliveTime​(long aliveTime)
        Set client alive time.
        Parameters:
        aliveTime - Alive time interval.
      • clientAliveTimeSet

        public boolean clientAliveTimeSet()
        Returns:
        true if client alive check time initialized.
      • clientRouterNodeId

        public UUID clientRouterNodeId()
        Returns:
        Client router node ID.
      • clientRouterNodeId

        public void clientRouterNodeId​(UUID clientRouterNodeId)
        Parameters:
        clientRouterNodeId - Client router node ID.
      • onClientDisconnected

        public void onClientDisconnected​(UUID newId)
        Parameters:
        newId - New node ID.
      • clientReconnectNode

        public TcpDiscoveryNode clientReconnectNode​(Map<String,​Object> nodeAttrs)
        Parameters:
        nodeAttrs - Current node attributes.
        Returns:
        Copy of local node for client reconnect request.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object