截止到0.90.x的版本,Elasticsearch已經(jīng)將connectedNodes從api中去掉,具體代替的方法是什么呢?也沒有找到相關(guān)的說明。
因此決定自己手工寫一個(gè)工具類。其實(shí),我們只有通過API去執(zhí)行一個(gè)方法,就可以測試連接是否正常。測試的方法選定為獲得集群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
* 測試服務(wù)器的可用狀態(tài)
*/
public class TestConnection {
/**
* 測試ES可用連接數(shù)方法
* 同時(shí)也也可以用以校驗(yàn)ES是否可以連接上
*/
public static void main(String[] args) {
//通過transport方式連接哦,否則沒有意義了
Client client = ESUtils.getClient();
try{
NodesInfoResponse response = client.admin().cluster()
//超時(shí)時(shí)間設(shè)置為半分鐘
.nodesInfo(new NodesInfoRequest().timeout("30")).actionGet();
Map<String,NodeInfo> nodesMap = response.getNodesMap();
//打印節(jié)點(diǎn)信息
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");
}
}
}
|
新聞熱點(diǎn)
疑難解答