我想知道在打开和关闭 java elasticsearch 客户端时有什么好的做法。 我是否在每个请求之间打开和关闭它?或者我可以对所有请求使用单个客户端实例吗?
private Client client;
@PostConstruct
public void init() {
try {
client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
} catch (UnknownHostException e) {
LOGGER.error("Unable to create ESClient : {}", e);
}
}
@PreDestroy
public void destroy() {
client.close();
}
谢谢!
最佳答案
我认为您不必在每次请求后关闭传输客户端。开销太大了。
查看文档 here .
// on startup
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300))
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300));
// on shutdown
client.close();
您可以在此处看到“启动时”和“关闭时”的注释行。所以基本上这会告诉你什么时候应该调用 client.close()
.
关于java - 何时关闭 Elasticsearch 中的 TransportClient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42189854/