![](/img/trans.png)
[英]Close processing is slow, in elasticsearch's TransportClient. I want to quickly
[英]When do I close TransportClient in Elasticsearch?
我想知道打开和关闭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();
}
谢谢 !
我认为您不必在每次请求后关闭运输客户端。 这将是太多的开销。
在此处查看文档。
// 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()
。
您应该为所有请求使用一个客户端。
打开连接是一项昂贵的操作,并且您不想在每次发出请求时都打开和关闭一个连接。
结束服务器或应用程序后,只需关闭客户端即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.