elasticsearch java rest,bulkprocessor关闭resthighlevelclient的最佳方法?

kadbb459  于 2021-06-09  发布在  ElasticSearch
关注(0)|答案(0)|浏览(771)

我正在使用elasticsearch 7.10版的bulkprocessor
在文档批量中,他们没有提到如何关闭客户端 RestHighLevelClient 我正在寻找一个好的方法来使用bulkprocessor。
例如,我的应用程序从早上7点到晚上10点每小时有5000个请求,其余时间每小时有1000个请求 setBulkActions(50) . 我有一些方法

1

RestHighLevelClient client = new RestHighLevelClient()
BulkProcessor.Builder builder = BulkProcessor.builder(
        (request, bulkListener) ->
            client.bulkAsync(request, RequestOptions.DEFAULT, bulkListener),
        listener);
...
public void handleApplicationShutdown() { client.close();}

这种方式保持了客户端的开放性,这就造成了文档初始化时所说的资源浪费。我更喜欢这种方式,当我有很多需要同步的请求时,它对我很有用

2

BulkProcessor.Builder builder = BulkProcessor.builder(
        (request, bulkListener) -> {
            RestHighLevelClient client = new RestHighLevelClient();
            client.bulk(request, RequestOptions.DEFAULT)
            client.close();
        },
        listener);

就这样一瞬间 RestHighLevelClient 每次同步批量。这样做的场景,但它浪费时间初始化资源每次同步批量
请纠正我。谢谢您

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题