[英]Elasticsearch Transport Client connection
我正在使用連接到Elasticsearch的Servlet構建搜索Web應用程序。 我有一個關於Elasticsearch的Transport模塊的問題。 我正在使用實現ServletContextListener的類中的TransportClient打開與Elasticsearch的連接。 下面是ElasticsearchServletContextListener類的代碼。
public class ElasticsearchContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("Starting up!");
try {
Client client = TransportClient.builder().build().addTransportAddress(
new InetSocketTransportAddress(InetAddress.getByName("IP-address"),9300));
//Storing the client connection in a static variable
Parameters.setESclient(client);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
Parameters.getESclient().close();
System.out.println("Shutting down!");
}
}
現在,只要用戶搜索查詢,它就會使用在ServletContextListener類中初始化的相同“客戶端”連接。 客戶端連接可以同時處理多個請求嗎? 或者每個用戶是否需要單獨的客戶端連接來查詢elasticsearch? 謝謝您的幫助。
該Client
實例能夠處理多個調用並處理多個線程。 而且你應該只有一個Client實例,因為它創建一個很昂貴。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.