elastisearch之java api Transportclient建立連線
阿新 • • 發佈:2019-01-11
ElasticSearch提供了NodeClient,Transport方式。
NodeClient這種方式相當於建立了一個節點,放入叢集中,這個節點不儲存資料,並且不能作為主節點,因為是一個節點,它知道整個叢集的狀態(每個節點在哪,哪些分片在哪個節點上等),這意味著它執行API時不會出現”連跳”。
TransportClient不建立節點,它存在於叢集外部,類似於REST客戶端,只是充當ES叢集和你的應用的通訊層,它知道API,並且能夠在節點間自動輪循、幫你嗅探叢集等。
Transport方式的好處是:
效能更高
本地資源消耗更少
內建連線池
當然也有缺點
當初始化連線時,ElasticSearch必須已啟動,且必須知道叢集中一個節點的IP地址和埠; 可能存在"連跳",浪費一定的網路資源
如果應用的是java語言,一般通過Transport優於node
elasticsearch1.7版本的TransportClient
Settings settings = ImmutableSettings.settingsBuilder().put("自己的配置","同前").build();
TransportClient esclient = new TransportClient(settings);
esclient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName ("自己的ip"), 應用的埠號));
elasticsearch 5.*版本的TransportClient
Settings settings=Settings.builder().put("自己的配置","同前").build();
TransportClient client=null;
try {
client= new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(("自己的ip" ), 應用的埠號));
}catch(Exception e){
}