程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Elasticsearch:我们开始使用 elasticsearch 高级客户端后高 CPU 使用率的模式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Elasticsearch:我们开始使用 elasticsearch 高级客户端后高 CPU 使用率的模式?

开发过程中遇到Elasticsearch:我们开始使用 elasticsearch 高级客户端后高 CPU 使用率的模式的问题如何解决?下面主要结合日常开发的经验,给出你关于Elasticsearch:我们开始使用 elasticsearch 高级客户端后高 CPU 使用率的模式的解决方法建议,希望对你解决Elasticsearch:我们开始使用 elasticsearch 高级客户端后高 CPU 使用率的模式有所启发或帮助;

我们最近开始使用elasticsearch高级客户端,我们使用scroll API从ES获取大量数据。我们看到高 cpu 利用率的模式如下:

Elasticsearch:我们开始使用 elasticsearch 高级客户端后高 CPU 使用率的模式

这是每 30 分钟重复一次的模式。不知道发生了什么。我们在 elasticsearch 中也看到了异常 -

[2021-05-12T04:19:29,516][DEBUG][o.e.a.s.TransportSearchScrollAction] [node-2] [93486247] 无法执行查询阶段 org.elasticsearch.transport.RemoteTransportException: [node-3][10.160.86.222:7550][inDices:data/read/search[phase/query/scroll]] 引起:org.elasticsearch.search.SearchContextMissingException:否 找到 ID 的搜索上下文 [93486247] 在 org.elasticsearch.search.Searchservice.getExecutor(Searchservice.java:496) ~[elasticsearch-6.8.9.jar:6.8.9] 在 org.elasticsearch.search.Searchservice.runAsync(Searchservice.java:373) ~[elasticsearch-6.8.9.jar:6.8.9] 在 org.elasticsearch.search.Searchservice.executequeryPhase(Searchservice.java:435) ~[elasticsearch-6.8.9.jar:6.8.9] 在 org.elasticsearch.action.search.SearchTransportservice$8.messageReceived(SearchTransportservice.java:376) ~[elasticsearch-6.8.9.jar:6.8.9] 在 org.elasticsearch.action.search.SearchTransportservice$8.messageReceived(SearchTransportservice.java:373) ~[elasticsearch-6.8.9.jar:6.8.9] 在 org.elasticsearch.xpack.security.transport.SecurityServerTransporTinterceptor$ProfileSecuredrequestHandler$1.doRun(SecurityServerTransporTinterceptor.java:250) ~[?:?] 在 org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-6.8.9.jar:6.8.9]

正在使用的高级客户端代码是官方文档中给出的常用代码-

final Scroll scroll = new Scroll(TimeValue.timeValueminutes(1L));
        Searchrequest searchrequest = new Searchrequest(index_name);
        searchrequest.scroll(scroll);
        Search@R_607_9016@eBuilder search@R_607_9016@eBuilder = new Search@R_607_9016@eBuilder();

        BoolqueryBuilder boolqueryBuilder = queryBuilders.boolquery();

        if (StringUtils.isnotBlank(keyword)) {
            LOG.info("Searching for keyword: {}",keyword);
            boolqueryBuilder.must(queryBuilders.multiMatchquery(keyword,INDEXED_FIELDS));
        }

        if(StringUtils.isnotBlank(param1)) {
            boolqueryBuilder.filter(queryBuilders.termquery("param1",param1));
        }

        if(Objects.nonNull(param1)) {
            boolqueryBuilder.filter(queryBuilders.termsquery("param1",param1));
        }

        search@R_607_9016@eBuilder.query(boolqueryBuilder);

        searchrequest.@R_607_9016@e(search@R_607_9016@eBuilder);

        List<Object1> statuses = new ArrayList<>();
        try {
            SearchResponse searchResponse = clIEnt.search(searchrequest,requestoptions.DEFAulT);
            String scrollID = searchResponse.getScrollID();
            SearchHit[] searchHits = searchResponse.getHits().getHits();

            while (searchHits != null && searchHits.length > 0) {
                for (SearchHit hit : searchHits) {
                    Object1 agent = JsonUtil.parseJson(hit.get@R_607_9016@eAsString(),Object1.class);
                    statuses.add(agent);
                }
                SearchScrollrequest scrollrequest = new SearchScrollrequest(scrollID);
                scrollrequest.scroll(scroll);   
                searchResponse = clIEnt.scroll(scrollrequest,requestoptions.DEFAulT);
                scrollID = searchResponse.getScrollID();
                searchHits = searchResponse.getHits().getHits();
            }

            ClearScrollrequest clearScrollrequest = new ClearScrollrequest();
            clearScrollrequest.addScrollID(scrollID);
            ClearScrollResponse clearScrollResponse = clIEnt.clearScroll(clearScrollrequest,requestoptions.DEFAulT);
            Boolean succeeded = clearScrollResponse.isSucceeded();

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的Elasticsearch:我们开始使用 elasticsearch 高级客户端后高 CPU 使用率的模式全部内容,希望文章能够帮你解决Elasticsearch:我们开始使用 elasticsearch 高级客户端后高 CPU 使用率的模式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。