截止到0.90.x的版本,Elasticsearch已經將connectedNodes從api中去掉,具體代替的方法是什么呢?也沒有找到相關的說明。
因此決定自己手工寫一個工具類。其實,我們只有通過API去執行一個方法,就可以測試連接是否正常。測試的方法選定為獲得集群node的信息。測試代碼:
java代碼import java.util.Map;
import org.elasticsearch.action.admin.cluster.node.info.NodeInfo;
import org.elasticsearch.action.admin.cluster.node.info.NodesInfoRequest;
import org.elasticsearch.action.admin.cluster.node.info.NodesInfoResponse;
import org.elasticsearch.client.Client;
import com.donlianli.es.ESUtils;
/**
* @author donlianli@126.com
* 測試服務器的可用狀態
*/
public class TestConnection {
/**
* 測試ES可用連接數方法
* 同時也也可以用以校驗ES是否可以連接上
*/
public static void main(String[] args) {
//通過transport方式連接哦,否則沒有意義了
Client client = ESUtils.getClient();
try{
NodesInfoResponse response = client.admin().cluster()
//超時時間設置為半分鐘
.nodesInfo(new NodesInfoRequest().timeout("30")).actionGet();
Map<String,NodeInfo> nodesMap = response.getNodesMap();
//打印節點信息
for(Map.Entry<String, NodeInfo> entry : nodesMap.entrySet()){
System.out.PRintln(entry.getKey() + ":" + entry.getValue().getServiceAttributes()) ;
}
}
catch(Exception e){
e.printStackTrace();
System.out.println("無法連接到Elasticsearch");
}
}
}
新聞熱點
疑難解答