這是一個結構問題(最佳實踐是什麼)。Java Elasticsearch客戶端結構
我有一個域名站點的50個Servlet,我管理的地方是客戶端讓js調用到java Servlet,然後調用ElasticSearch,然後servlet響應客戶端。
在我的每個servlet中,類名後立即爲ES連接創建一個靜態設置和客戶端配置。這是因爲在每個servlet中可能有2個或多個方法調用相同的ES羣集,我不想在每種方法中創建此配置。
/**
* Servlet implementation class Results
*/
@WebServlet("/Results")
public class Results extends HttpServlet {
private static final long serialVersionUID = 1L;
Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "elastictest").build();
Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("143.79.236.xxx", 9300));
但是現在我想知道我應該做50次(每個類的頂部配置1個配置)嗎?或者,我是否使用相同的配置創建一個新的java類,並在每個servlet引用中創建一個新的java類?這是否可以節省內存和更好的練習?
**--Inside name.java --**
public static Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "elastictest").build();
public static Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("143.79.236.xxx", 9300));
--Inside在50個servlet的所有方法引用name.client instead--
SearchResponse response = name.client.prepareSearch().setQuery(......
而且,在我的doPost的底部(我發出了printWriter.println(結果後))我要關閉客戶嗎? client.close();
謝謝。
這使得有很大的意義,我從來沒有想過。謝謝!^1 – Chris 2014-09-18 19:52:29