Cluster APIs
APIs for accessing cluster and nodes.
This is a legacy Apache Ignite documentation
The new documentation is hosted here: https://ignite.apache.org/docs/latest/
IgniteCluster
Cluster functionality is provided via the IgniteCluster
interface. You can get an instance of IgniteCluster
from Ignite
as follows:
Ignite ignite = Ignition.ignite();
IgniteCluster cluster = ignite.cluster();
Through the IgniteCluster
interface you can:
- Start and stop remote cluster nodes
- Get a list of all cluster members
- Create logical Cluster Groups
ClusterNode
The ClusterNode
interface has a very concise API and deals only with the node as a logical network endpoint in the topology: its globally unique ID, the node metrics, its static attributes set by the user, and a few other parameters.
Cluster Node Attributes
All cluster nodes on startup automatically register all the environment and system properties as node attributes. However, users can choose to assign their own node attributes in the configuration:
<bean class="org.apache.ignite.IgniteConfiguration">
...
<property name="userAttributes">
<map>
<entry key="ROLE" value="worker"/>
</map>
</property>
...
</bean>
The following example shows how to get the nodes where the "worker" attribute has been set.
ClusterGroup workers = ignite.cluster().forAttribute("ROLE", "worker");
Collection<ClusterNode> nodes = workers.nodes();
All node attributes are available via the
ClusterNode.attribute("propertyName")
method.
Cluster Node Metrics
Ignite automatically collects metrics for all the nodes in the cluster. Metrics are collected in the background and are updated with every heartbeat message exchanged between the cluster nodes.
Node metrics are available via the ClusterMetrics
interface which contains over 50 various metrics (note that the same metrics are available for Cluster Groups as well).
Here is an example of getting some metrics, including average CPU load and used heap, for the local node:
// Local Ignite node.
ClusterNode localNode = cluster.localNode();
// Node metrics.
ClusterMetrics metrics = localNode.metrics();
// Get some metric values.
double cpuLoad = metrics.getCurrentCpuLoad();
long usedHeap = metrics.getHeapMemoryUsed();
int numberOfCores = metrics.getTotalCpus();
int activeJobs = metrics.getCurrentActiveJobs();
Local Cluster Node
The local grid node is an instance of the ClusterNode
representing this Ignite node.
Here is an example of how to get a local node:
ClusterNode localNode = ignite.cluster().localNode();
Updated 4 months ago