java - 何时关闭 Elasticsearch 中的 TransportClient?

标签 java 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();
}

谢谢!

最佳答案

我认为您不必在每次请求后关闭传输客户端。开销太大了。

查看文档 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/

相关文章:

java - For循环正在打印出多个打印语句

elasticsearch - 我们可以优先考虑 Elasticsearch 中搜索索引的顺序吗

php - 无法解析类型为[date]的字段[datefield]

hadoop - 通过 Hadoop 连接 Elasticsearch 和 Splunk

java - 如何从vertx中的文件中获取byte[]

java - 从字符串转换为 UTC 格式

elasticsearch - 无法遍历数组字段ES 6.1

elasticsearch - ElasticSearch NEST-搜索多种类型,但仅对所选类型应用过滤器

java - poi API 创建的 Excel 文件 : data is there but only one row is viewable?

java - Elasticsearch 通过过滤器获取所有数据