即使是不成熟的尝试,也胜于胎死腹中的策略。

5.1.2 client做成单例的一直不关闭会出问题吗

Elasticsearch | 作者 nieyan2455 | 发布于2017年06月02日 | 阅读数:6707

现在每次操作的时候都是获取在关闭,每次获取连接的时候都很慢,网上说做成单例的不会出问题吗。。
已邀请:

novia - 1&0

赞同来自:

肯定得是单例啊,服务最终停止时关闭就行了啊

novia - 1&0

赞同来自:

只是客户端的获取,没有并发问题吧,批量操作时使用如下:
 
BulkProcessor bulkProcessor = BulkProcessor.builder(client, new BulkProcessor.Listener() {
@Override
public void beforeBulk(long executionId, BulkRequest request) {
}
@Override
public void afterBulk(long executionId, BulkRequest request, BulkResponse response) {
}
@Override
public void afterBulk(long executionId, BulkRequest request, Throwable failure) {
}
}).setBulkActions(2000)
.setBulkSize(new ByteSizeValue(50, ByteSizeUnit.MB))
.setFlushInterval(TimeValue.timeValueSeconds(60)).build();

最后关闭时,如下:
 
if(bulkProcessor!=null){
try {
while(!bulkProcessor.awaitClose(5, TimeUnit.SECONDS)){

}
} catch (InterruptedException e) {
e.printStackTrace();
}
}

if(client!=null){
client.close();
}

要回复问题请先登录注册