23、ES实战:实现集群管理

集群管理
使用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());
	   }
    }
}

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: