es:migrate 报错:No alive nodes found in your cluster

  1. 按照教程,重复操作了好几次,还是这个No alive nodes found in your cluster,偶然间,我把 第一台服务器上修改的 elasticsearch 的 network.host 给注释,重启监听 127.0.0.1 ,
    tcp        0      0 127.0.0.1:9200          0.0.0.0:*               LISTEN      3214/java 

    然后执行部署报错消失,我有些纳闷,这个原因是什么?

PS: 查看两个服务器,部署项目的 .env 文件, ES_HOSTS = {云服务器的内网 IP}:9200

此外:还有一个疑问:

  1. dep部署的时候,部署后,有时部署文件会是 release -> releases/2/ ,这是什么原因导致?

谢谢~

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案
  1. 登录到第一台服务器上并 cd 到最新的 release 目录
  2. 查看该目录下 .env 里的 ES_HOST 是否指向内网 IP
  3. 执行 es:migrate 查看是否报错
  4. 进入 tinker 并执行 config('database.elasticsearch') 看看输出是否为内网 IP
5年前 评论
讨论数量: 5
leo

执行把监听 IP 改成内网,然后执行 curl {云服务器的内网 IP}:9200 看看输出什么

5年前 评论

@leo 修改,重启监听内网 IP 后,curl 返回正常 You Know, for Search

tcp        0      0 172.19.97.15:9200       0.0.0.0:*               LISTEN      6125/java 

可访问前端 500,查看日志又是 No alive nodes found in your cluster

5年前 评论
leo
  1. 登录到第一台服务器上并 cd 到最新的 release 目录
  2. 查看该目录下 .env 里的 ES_HOST 是否指向内网 IP
  3. 执行 es:migrate 查看是否报错
  4. 进入 tinker 并执行 config('database.elasticsearch') 看看输出是否为内网 IP
5年前 评论

@leo 找到了问题:config('database.elasticsearch') 读取是 null 的,6.6 节我将配置 elasticsearch 的代码写错了位置。最后,清除缓存,可以正常访问。 :sweat_smile: 谢谢~ ~ ~

5年前 评论

:sweat_smile: 还有种情况,停机重启后elasticsearch未自动启动,也会出现这种情况, 给自己挖的好坑

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!