【踩坑记录】Elasticsearch查询:circuit_breaking_exception异常解决方案

项目场景:

springboot中使用ES7查询一个月内的数据量趋势时出错。在开发线上正常,演示线时出现异常


问题描述

项目在演示线环境的时候,出现查询异常

异常信息如下:

c 复制代码
org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=circuit_breaking_exception, reason=[parent] Data too large, data for [<http_request>] would be [31741946644/29.5gb], which is larger than the limit of [31621696716/29.4gb], real usage: [31741945664/29.5gb], new bytes reserved: [980/980b], usages [request=0/0b, fielddata=896932/875.9kb, in_flight_requests=980/980b, model_inference=0/0b, accounting=89070922/84.9mb]]
        at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:187)
        at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:1911)
        at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:1888)
        at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1645)
        at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1602)
        at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1572)
        at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:1088)

原因分析:

原因:ES默认的缓存设置是缓存区是只进不出的,一当缓存区不够时,就会抛出异常

解决方案:

  1. API方式设置,无需重启ES

    PUT _cluster/settings
    {
    "persistent" : {
    "indices.breaker.fielddata.limit" : "40%"
    }
    }

  2. 设置elasticsearch.yml文件,然后重启ES

    indices.memory.index_buffer_size: 30%
    indices.recovery.max_bytes_per_sec: 30mb
    indices.fielddata.cache.size: 30%
    indices.breaker.fielddata.limit: 40%
    indices.breaker.request.limit: 40%
    indices.breaker.total.use_real_memory: false
    indices.breaker.total.limit: 70%

配置完后,重新查询,正常

相关推荐
Elasticsearch4 小时前
AI 整合:为什么平台将胜出,而产品组合将瓦解
elasticsearch
七牛开发者4 小时前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
Aphelios3805 小时前
一次锁内网络IO引发的Tomcat线程池“饿死”事故
java·开发语言·spring boot·elasticsearch·tomcat·网络io阻塞·线程池耗尽
Elasticsearch10 小时前
向数据源提问:使用 Elasticsearch 和 Elastic Agent Builder 将代码搜索扩展到十亿行代码规模
elasticsearch
-今昭-13 小时前
AnsibleVault加密配置及zabbix部署
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客16 小时前
跳过有状态的 OTel Collector:Elasticsearch 9.5 原生存储两种指标时间类型
大数据·人工智能·elasticsearch·搜索引擎·重构·全文检索
PC2005-cloud2 天前
Elasticsearch 学习笔记:集群实战(3 控制节点 + 3 数据节点部署与故障转移)
笔记·学习·elasticsearch
Devin~Y2 天前
从内容社区到AI智能客服:Spring Boot + Spring Cloud + Spring AI 全栈实战面试拆解
java·spring boot·redis·elasticsearch·spring cloud·kafka·mybatis
凤山老林2 天前
复杂检索引擎落地:Spring Boot + Elasticsearch 数据同步与高阶查询实战
spring boot·后端·elasticsearch
Elastic 中国社区官方博客2 天前
你的 AI agent 不需要你的 API 密钥:使用 OAuth 2.1 对 Elasticsearch MCP 服务器进行身份验证
大数据·运维·人工智能·elasticsearch·搜索引擎·全文检索