docker部署elasticsearch报错None of the configured nodes are available处理

2019年11月7日18:40:03 发表评论 9,938 ℃

之前一直都是通过yum安装es,最近使用docker-compose部署了一个单节点es,java调用9300端口的时候,总是报错:None of the configured nodes are available,网上找了很多文档,都说cluster.name不一致导致,或者端口不正确,但是程序和es的name都是一致,端口也是正确的。

都有点想放弃的时候,终于找到一篇有用的文章,被坑了两周的问题,终于得到了解决。

主要原因:spring-boot项目中使用了client.transport.sniff为true,使客户端去嗅探整个集群的状态,把集群中其它机器的ip地址加到客户端中。这样做的好处是,一般你不用手动设置集群里所有集群的ip到连接客户端,它会自动帮你添加,并且自动发现新加入集群的机器。

处理方式:

1、把client.transport.sniff修改为false关闭嗅探;或者直接使用addTransportAddress方法把集群中其它机器的ip地址加到客户端中。

2、修改ES服务器配置,将publish_host改为服务器的ip而不是docker分配的内部IP

elasticsearch.yml

cluster.name: elasticsearch
network.host: 0.0.0.0
network.publish_host: 192.168.1.200
http.port: 9200
discovery.type: single-node

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: