• 连接ES的Java项目报Too many open files错误


    启动后查询open files 数量

    lsof -p TOMCAT_PID | grep wc -l

    结果大概是一千多,但是短短数小时后就会涨到8k以上,所以使用网上很多朋友通过执行ulimit -n或修改limits.conf文件增加系统允许打开文件的数量方法未能解决问题。

    查看了一下log,发现报的几个异常都和ESClient有关系:

    None of the configured nodes are available

    见到这个异常,又去找博客,解决办法是初始化client时去掉cluster.name参数。但,问题依旧!

    rejected execution (shutting down) on org.elasticsearch.transport.netty.NettyTransport$2@6ea6ba8d
    org.elasticsearch.transport.NodeDisconnectedException

    接着又见到了这两个异常,查询elasticsearch的连接数量竟然又上千条之多。于是问题定位到了,ES连接数过多。检查代码,每次查询和写入都执行了innitClient()和closeClient()方法,感觉不到有什么逻辑错误或忘记关闭连接的情况。

    最后还是咨询了大神,一语道破天机:

    于是我将client实例改成单例实现,完美的解决了问题O(∩_∩)O~。

    另外大神还说了:

    于是我又把去掉的cluster.name给加上了^_^

    虽然问题解决了,但是不懂啥原理。有时间还是要研究一下文档~

  • 相关阅读:
    linux挂载
    kafka
    使用python27+flask
    arcpy 10.8计算最短路径,并复制出结果
    arcgis pro2.5使用试用
    arcgis engine create featureclass , gp工具
    python和c#的 opencv文字区域识别
    C#调用带参数并输出控制台的python的EXE程序
    arcgis10.8中 python27打包exe文件
    arcgis engine指定范围导出屏幕图片
  • 原文地址:https://www.cnblogs.com/GoQC/p/6803341.html
Copyright © 2020-2023  润新知