我正在使用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
每次同步批量。这样做的场景,但它浪费时间初始化资源每次同步批量
请纠正我。谢谢您
暂无答案!
目前还没有任何答案,快来回答吧!