记录一次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
后话:
没错,我已经入坑了,现在持续填坑中。
最新文章
- GitHub for Windows 內建 Git Shell 執行時顏色所代表的意義
- [Xamarin] 從Xamarin中呼叫 *.jar 的 library -建立.jar篇 (转帖)
- POSIX, Bash, GPL etc
- (一)s3c2440 地址分配讲解 (很难很纠结)
- linux与windows的不同
- Karel运行环境配置
- linear model for classification
- Scala学习笔记--Actor和并发
- Python之路:堡垒机实例以及数据库操作
- php笔记一
- 通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用
- WPF编程-WPF体系结构
- DevExpress VCL 的 cxDBTreeList 的使用方法
- Numpy 索引
- 部署OpenStack问题汇总(四)--openstack中nova-compute状态status显示为'XXX'的问题
- 微信 weui 初体验
- git 忽略文件.gitignore
- str和repr
- Yii CDbCriteria类中方法
- 20145231 《Java程序设计》第一周学习总结
热门文章
- Centos7下redis设置密码、开放远程访问权限
- [BZOJ1391]解题报告|网络流的又一类建图&;Dinic的若干优化
- [POJ2187][BZOJ1069]旋转卡壳
- 1210笔记//关于导航实例-QQ空间//导航实例-storyboard实现//控制器的生命周期//控制器的生命周期方法
- wx.ScrolledWindow wx.PseudoDC
- OpenWRT介绍
- UVALIVE 2686 Stargates
- postman接口间关联
- iOS开发-Runloop详解(简书)
- JVM垃圾收集规则和算法