zoukankan      html  css  js  c++  java
  • 记录一次Elasticsearch线上部署后出现:org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []的问题解决

    说明:ES部署了3个节点,而一般情况只要这三个节点的IP其中一个都可以连接,Web端口使用的是9500,Client连接使用的是9600,调用程序使用了ES原生Client进行连接。

    解决方法:

    1、出现这样的问题,一般检查集群名称和IP是否填写正确。

    2、注意,比如提供的IP能Telnet成功,但不一定代表能正常使用Client进行连接。

    3、我猜测Client的原理:如果在构造Client对象时,传入了一个IP之后且连接成功后,ES会返回整个集群的IP给Client,此时的Client会逐个进行连接。

    4、如果定位到IP问题之后,建议直接使用内网IP,也就是ES使用的IP进行连接来排查是不是IP问题。

    问题解决过程分析:

    1、由于生成环境的部署结构复杂且要考虑安全性,所以一般会做很多措施,而提供连接的IP并非是真实ES的内网IP,而其余集群的内网IP不一定能开放访问。

    2、使用netstat -tnp | grep SYN分析出有多少IP在等待连接的,从而分析出到底是不是一直在连接集群中的内网IP。

    3、分析出Client在通过提供的不是ES的内网IP连接之后还会连接ES真实的内网IP时,就应该是第一次Client连接ES成功后返回的IP列表,ES通知Client通过这些IP连接ES;解决方法可以这样:在Linux下使用iptables进行IP转发,比如提供的IP为192.168.1.2:9600,而ES集群的IP为(192.168.3.2/192.168.3.3/192.168.3.4),那么执行将192.168.3.2~的全部IP转发到192.168.1.2中。iptables转发参考:http://www.cnblogs.com/EasonJim/p/7589394.html

    后话:

    没错,我已经入坑了,现在持续填坑中。

  • 相关阅读:
    程序员获取编程灵感的10 种方式
    修改Windows远程桌面3389端口
    修改Windows远程桌面3389端口
    JS 开发常用工具函数
    JS 开发常用工具函数
    IT公司老板落水,各部门员工怎么救
    IT公司老板落水,各部门员工怎么救
    如何优雅地给妹子优化电脑(Windows)?
    如何优雅地给妹子优化电脑(Windows)?
    程序员,你恐慌的到底是什么?
  • 原文地址:https://www.cnblogs.com/EasonJim/p/8254269.html
Copyright © 2011-2022 走看看