• 连接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给加上了^_^

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

  • 相关阅读:
    keyCode对照表
    WebApi的前端调用
    AJAX get和post请求
    Linq中常用语法
    MVC三种分页方法
    常用DBhelper封装方法
    ASP.NET MVC 导入Excel文件(完整版)
    Razor语法2
    MVC之路由规则 (自定义,约束,debug)
    MVC
  • 原文地址:https://www.cnblogs.com/GoQC/p/6803341.html
Copyright © 2020-2023  润新知