在elasticsearch的TransportClient中,关闭处理很慢。我想快点

时间:2017-08-21 14:44:47

标签: java spring elasticsearch

  • 问题

    1. 我是否需要TransportClient的近距离处理?
    2. 有没有办法加快TransportClient的关闭处理?
  • 上下文
    我正在进行性能调整 TransportClient的处理速度很慢 我非常麻烦。
    我测量了。
    通过密切处理花了2000毫秒。

public SearchResponse search(SearchParam param) {

    EsConnection connect = new EsConnection();
    TransportClient client = connect.getTransportClient();

    try {
        long start1 = System.currentTimeMillis();
        response = client.prepareSearch()
                .setSize(param.getNum())
                .setFrom(param.getFrom())
                .setQuery(shouldQuery)
                .execute()
                .actionGet(timeoutMsec);
        System.out.println(response);
        long end1 = System.currentTimeMillis();
        System.err.println("search:"   + (end1 - start1) + "ms");

    } catch (ElasticsearchException e) {
        throw e;
    } finally {
        long start1 = System.currentTimeMillis();
        client.close();
        long end1 = System.currentTimeMillis();
        System.err.println("close:"   + (end1 - start1) + "ms");
    }

    return response;
}

环境

  • 语言:Java 8
  • 框架:Spring
  • Elasticsearch客户端(jar)ver
    • org.elasticsearch:5.1.1
    • org.elasticsearch.client:5.1.1
  • Elasticsearch&rs; s ver:5.3.1

1 个答案:

答案 0 :(得分:0)

网络图书馆Netty4的设计存在问题。 看问题here 并提交谁将密切方法引入Elasticsearch客户端here

我认为Netty4中GlobalEventExecutor的设计非常糟糕,你不能提高性能。