2017-06-01 30 views
0

我通過9200端口使用ElasticSearch REST API。ElasticSearch API通過9300 vs 9200端口有什麼區別?

官方Java庫客戶端連接到9300端口。

port API有什麼區別?

我想通過記錄事件到ElasticSearch,並期待大宗原料藥:

什麼打擾我最深的是,通過PreBuiltTransportClient的Java API帶來了很大的如果將客戶端插入應用程序(爲什麼我需要在應用程序中使用org.apache.lucene罐子??),則完全不必要的開銷依賴關係?

是否有任何性能差異,他們是否提供相同級別的可靠性?

回答

1

Here

Java客戶端彈性創建一個傳輸節點的客戶端,並連接到羣集(不作爲全功能節點)通過傳輸模塊而不是在9200端口整齊的工作。所以它回落到端口9300連接到ES的傳輸層。

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300)); 

彈性監聽在端口9300的所有transport要求,甚至其他節點。

+0

您的意思是9300是集羣的發現和控制端口,而9200是公共API端口用於請求?我不明白從9300端口上使用Java客戶端批量插入而不是9200上的REST的好處。 – gavenkoa

+1

9200是用於彈性的其餘http端口,是的9300既是發現模塊端口,也是傳輸模塊端口。對於批量索引,它可以幫助提高性能,因爲它直接連接到數據節點以將數據導入羣集,而不是通過http端口發送批量數據。通過創建虛擬傳輸客戶機節點,C#彈性客戶機也可以將java另存爲java。 – user3775217

相關問題