﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.4.0/dotnetdoc/api/Apache.Ignite.Core.Cluster.IClusterNode.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Interface IClusterNode
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Interface IClusterNode
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.0">
    
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
  <body data-spy="scroll" data-target="#affix">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Cluster.IClusterNode">
  
  
  <h1 id="Apache_Ignite_Core_Cluster_IClusterNode" data-uid="Apache.Ignite.Core.Cluster.IClusterNode" class="text-break">Interface IClusterNode
  </h1>
  <div class="markdown level0 summary"><p>Interface representing a single cluster node. Use <a class="xref" href="Apache.Ignite.Core.Cluster.IClusterNode.html#Apache_Ignite_Core_Cluster_IClusterNode_GetAttribute__1_System_String_">GetAttribute&lt;T&gt;(String)</a> or
<a class="xref" href="Apache.Ignite.Core.Cluster.IClusterNode.html#Apache_Ignite_Core_Cluster_IClusterNode_GetMetrics">GetMetrics()</a> to get static and dynamic information about remote nodes.
You can get a list of all nodes in grid by calling <a class="xref" href="Apache.Ignite.Core.Cluster.IClusterGroup.html#Apache_Ignite_Core_Cluster_IClusterGroup_GetNodes">GetNodes()</a> 
on <a class="xref" href="Apache.Ignite.Core.IIgnite.html">IIgnite</a> instance.
<p>
You can use Ignite node attributes to provide static information about a node.
This information is initialized once within grid, during node startup, and
remains the same throughout the lifetime of a node. 
<p>
All members are thread-safe and may be used concurrently from multiple threads.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Cluster.IBaselineNode.html#Apache_Ignite_Core_Cluster_IBaselineNode_ConsistentId">IBaselineNode.ConsistentId</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Cluster.IBaselineNode.html#Apache_Ignite_Core_Cluster_IBaselineNode_Attributes">IBaselineNode.Attributes</a>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Cluster.html">Apache.Ignite.Core.Cluster</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Cluster_IClusterNode_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public interface IClusterNode : IBaselineNode</code></pre>
  </div>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_Addresses_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.Addresses*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_Addresses" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.Addresses">Addresses</h4>
  <div class="markdown level1 summary"><p>Collection of addresses this node is known by. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;string&gt; Addresses { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;<span class="xref">System.String</span>&gt;</td>
        <td><p>Collection of addresses.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_HostNames_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.HostNames*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_HostNames" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.HostNames">HostNames</h4>
  <div class="markdown level1 summary"><p>Collection of host names this node is known by.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">ICollection&lt;string&gt; HostNames { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.ICollection</span>&lt;<span class="xref">System.String</span>&gt;</td>
        <td><p>Collection of host names.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_Id_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.Id*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_Id" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.Id">Id</h4>
  <div class="markdown level1 summary"><p>Globally unique node ID. A new ID is generated every time a node restarts.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">Guid Id { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Guid</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_IsClient_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.IsClient*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_IsClient" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.IsClient">IsClient</h4>
  <div class="markdown level1 summary"><p>Gets a value indicating whether or not this node is connected to cluster as a client.
<p>
Do not confuse client in terms of discovery and client in terms of cache. 
Cache clients cannot carry data, while topology clients connect to the topology in a different way.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool IsClient { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p><code>true</code> if this node is a client node, <code>false otherwise.</code>.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_IsDaemon_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.IsDaemon*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_IsDaemon" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.IsDaemon">IsDaemon</h4>
  <div class="markdown level1 summary"><p>Tests whether or not this node is a daemon.
<p>
Daemon nodes are the usual Ignite nodes that participate in topology but not
visible on the main APIs, i.e. they are not part of any projections.
<p>
Daemon nodes are used primarily for management and monitoring functionality that
is build on Ignite and needs to participate in the topology but should be
excluded from &quot;normal&quot; topology so that it won&apos;t participate in task execution
or in-memory database.
<p>
Application code should never use daemon nodes.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool IsDaemon { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_IsLocal_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.IsLocal*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_IsLocal" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.IsLocal">IsLocal</h4>
  <div class="markdown level1 summary"><p>Tests whether or not this node is a local node.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool IsLocal { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_Order_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.Order*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_Order" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.Order">Order</h4>
  <div class="markdown level1 summary"><p>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.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">long Order { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int64</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_GetAttribute_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.GetAttribute*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_GetAttribute__1_System_String_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.GetAttribute``1(System.String)">GetAttribute&lt;T&gt;(String)</h4>
  <div class="markdown level1 summary"><p>Gets node&apos;s attribute. Attributes are assigned to nodes at startup.
<p>
Note that attributes cannot be changed at runtime.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">T GetAttribute&lt;T&gt;(string name)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">name</span></td>
        <td><p>Attribute name.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">T</span></td>
        <td><p>Attribute value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_GetAttributes_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.GetAttributes*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_GetAttributes" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.GetAttributes">GetAttributes()</h4>
  <div class="markdown level1 summary"><p>Gets all node attributes. Attributes are assigned to nodes at startup.
<p>
Note that attributes cannot be changed at runtime.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Obsolete(&quot;Use Attributes property.&quot;)]
IDictionary&lt;string, object&gt; GetAttributes()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Collections.Generic.IDictionary</span>&lt;<span class="xref">System.String</span>, <span class="xref">System.Object</span>&gt;</td>
        <td><p>All node attributes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_GetMetrics_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.GetMetrics*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_GetMetrics" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.GetMetrics">GetMetrics()</h4>
  <div class="markdown level1 summary"><p>Gets metrics snapshot for this node. Note that node metrics are constantly updated
and provide up to date information about nodes. For example, you can get
an idea about CPU load on remote node via <a class="xref" href="Apache.Ignite.Core.Cluster.IClusterMetrics.html#Apache_Ignite_Core_Cluster_IClusterMetrics_CurrentCpuLoad">CurrentCpuLoad</a>.
<p>
Node metrics are updated with some delay which is directly related to heartbeat
frequency. For example, when used with default <code>GridTcpDiscoverySpi</code> the 
update will happen every <code>2</code> seconds.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IClusterMetrics GetMetrics()</code></pre>
  </div>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cluster.IClusterMetrics.html">IClusterMetrics</a></td>
        <td><p>Runtime metrics snapshot for this node.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_TryGetAttribute_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.TryGetAttribute*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_TryGetAttribute__1_System_String___0__" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.TryGetAttribute``1(System.String,``0@)">TryGetAttribute&lt;T&gt;(String, out T)</h4>
  <div class="markdown level1 summary"><p>Try getting node&apos;s attribute. Attributes are assigned to nodes at startup.
<p>
Note that attributes cannot be changed at runtime.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">bool TryGetAttribute&lt;T&gt;(string name, out T attr)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">name</span></td>
        <td><p>Attribute name.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">T</span></td>
        <td><span class="parametername">attr</span></td>
        <td><p>Attribute value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><p><code>true</code> in case such attribute exists.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            © 2015 - 2018 The Apache Software Foundation
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
