docker部署elasticsearch報錯None of the configured nodes are available處理

2019年11月7日18:40:03 發表評論 11,746 ℃

之前一直都是通過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: