• 记录Elasticsearch circuit_breaking_exception异常解决


    业务场景:

    Flink消费Kafka数据写入ES

    组件版本:

    CDH:6.3.0

    Flink:1.12.1

    Elasticsearch:7.7.0

    异常明细:

    Caused by: ElasticsearchStatusException[Elasticsearch exception [type=circuit_breaking_exception, reason=[parent] Data too large, data for [<http_request>] would be [1979396994/1.8gb], which is larger than the limit of [1972122419/1.8gb], real usage: [1977917952/1.8gb], new bytes reserved: [1479042/1.4mb], usages [request=0/0b, fielddata=4008586/3.8mb, in_flight_requests=7691406/7.3mb, accounting=6917604/6.5mb]]]

    异常原因:

    由于ES有熔断器机制,一旦内存使用超过熔断器的限则将会触发熔断,不再响应任何请求,导致程序终止,但ES健康情况不受影响。
    日志显示实际使用量[1979396994/1.8gb]已经超过了限制[1972122419/1.8gb],故触发熔断机制。

    解决办法:

    1、调大ES JVM堆内存
    ES默认是2g,根据服务器配置做调整,一般建议为服务器内存的一半,并且建议Xms与Xmx大小一致。

    (1)散搭ES修改方式:编辑jvm.options

    (2)CDH修改方式:

    详细内存配置说明可参考:
    https://blog.csdn.net/duanzelun/article/details/106948808

    2、调大字段数据熔断器(写场景)
    如果服务器没有足够的内存可考虑此选项,indices.breaker.fielddata.limit默认为堆内存的40%,可做适当调整。

  • 相关阅读:
    C++实现二叉树的相应操作
    C++对文件的操作
    C++与C的区别二
    C++多线程编程二
    C++多线程编程一
    C语言多线程编程二
    C语言多线程编程一
    HTML练习(三)
    磁盘/内存模式查询数据
    RestTemplate使用不当引发的问题分析
  • 原文地址:https://www.cnblogs.com/changsblogs/p/16141427.html
Copyright © 2020-2023  润新知