﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.9.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>
  <a id="Apache_Ignite_Core_Cluster_IClusterNode_Version_" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.Version*"></a>
  <h4 id="Apache_Ignite_Core_Cluster_IClusterNode_Version" data-uid="Apache.Ignite.Core.Cluster.IClusterNode.Version">Version</h4>
  <div class="markdown level1 summary"><p>Gets an Ignite node version.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IgniteProductVersion Version { 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><a class="xref" href="Apache.Ignite.Core.Common.IgniteProductVersion.html">IgniteProductVersion</a></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 - 2019 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>
