docker部署elasticsearch報(bào)錯(cuò)None of the configured nodes are available處理

2019年11月7日18:40:03 發(fā)表評(píng)論 11,589 ℃

之前一直都是通過yum安裝es,最近使用docker-compose部署了一個(gè)單節(jié)點(diǎn)es,java調(diào)用9300端口的時(shí)候,總是報(bào)錯(cuò):None of the configured nodes are available,網(wǎng)上找了很多文檔,都說cluster.name不一致導(dǎo)致,或者端口不正確,但是程序和es的name都是一致,端口也是正確的。

都有點(diǎn)想放棄的時(shí)候,終于找到一篇有用的文章,被坑了兩周的問題,終于得到了解決。

主要原因:spring-boot項(xiàng)目中使用了client.transport.sniff為true,使客戶端去嗅探整個(gè)集群的狀態(tài),把集群中其它機(jī)器的ip地址加到客戶端中。這樣做的好處是,一般你不用手動(dòng)設(shè)置集群里所有集群的ip到連接客戶端,它會(huì)自動(dòng)幫你添加,并且自動(dòng)發(fā)現(xiàn)新加入集群的機(jī)器。

處理方式:

1、把client.transport.sniff修改為false關(guān)閉嗅探;或者直接使用addTransportAddress方法把集群中其它機(jī)器的ip地址加到客戶端中。

2、修改ES服務(wù)器配置,將publish_host改為服務(wù)器的ip而不是docker分配的內(nèi)部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

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評(píng)論

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