集群管理
使用ClusterHealthResponse 实现集群信息监测和管理
ClusterHealthResponse 的实例 healths 可调用的方法分析:
-
集群健康信息总览:healths.toString()
-
集群名称:healths.getClusterName()
-
集群状态:healths.getStatus()
-
集群是否超时:healths.isTimedOut()
-
集群的节点个数:healths.getNumberOfNodes()
-
集群的数据节点个数:healths.getNumberOfDataNodes()
-
集群的活跃私有分片个数:healths.getActivePrimaryShards()
-
集群的活跃分片个数:healths.getActiveShards()
-
集群的迁移分片个数:healths.getRelocatingShards()
-
集群的初始化分片个数: healths.getInitializingShards()
-
集群的未分配分片个数: healths.getUnassignedShards()
-
集群的延迟未分配分片个数:healths.getDelayedUnassignedShards()
-
集群的等待任务的个数:healths.getNumberOfPendingTasks()
-
集群的快速查询数:healths.getNumberOfInFlightFetch()
-
集群的任务最大队列等待毫秒数:healths.getTaskMaxWaitingTime()
-
集群的活跃分片百分比:healths.getActiveShardsPercent()
-
集群的索引的详细信息:healths.getIndices()
-
它的结构 Map<Sirng, ClusterIndexHealth> 得键值对;
-
key 是索引,value 是包含索引健康信息的实例
public class EsClusterHealth throws UnknownHostException{
public void ClusterHealth(TransportClient client){
ClusterHealthResponse healths = client.admin().cluster().prepareHealth().get();
//集群名称
String clusterName = healths.getClusterName();
System.out.println("clusterName="+clusterName);
//数据节点的个数
int numberOfDataNodes = healths.getNumberOfDateNodes();
System.out.println("numberOfDataNodes="+numberOfDataNodes);
//节点的个数
int numberOfNodes = healths.getNumberOfNodes();
System.out.println("numberOfNodes="+numberOfNodes);
for(ClusterIndexHealth health : healths.getIndices().value()){
//循环查看索引
String index = health.getIndex();
//查看索引的分片数
int numberOfShards = health.getNumberOfShards();
//查看索引的副本数
int numberOfReplicas = health.getNumberOfReplicas();
System.out.println("index=%s,numberOfShards=%d,numberOfReplicas=%d\n", index, numberOfShards, numberOfReplicas);
//查看集群集群状态
ClusterHealthStatus status = health.getStatus();
System.out.println(status.toString());
}
}
}
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: