繁体   English   中英

何时在Elasticsearch中关闭TransportClient?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM