簡體   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