关于Nacos部署线上后应用启动超时问题
部署的应用启动就报java.util.concurrent.TimeoutException: Waited 3000 milliseconds …
Nacos部署线上
第一件要做的事情肯定就是确认服务器上JDK是否安装好,并且确认已经配置环境变量,nacos的部署很简单,在官网下载nacos对应的版本解压即可运行。以下是nacos的启动命令(单机版):
- sh startup.sh -m standalone 或者startup.cmd -m standalone;
问题描述
因为是一台“新鲜”未使用的linux服务器,觉得配置好环境应用打包丢上去启动就好了,谁知道就一个应用连接nacos超时问题卡了我一天,并且找遍了网上都没有找到对应问题的解决办法。以下是我排错思路:
1.确认nacos启动成功,检查命令有:ps -ef | grep nacos
2.确认端口是否开放,检查命令有:netstat -tuln或者 指定端口查看netstat -tuln | grep 8848
3.确认应用和nacos版本是否对应。
4确认应用bootstrap.yml文件配置 配置代码
.
# Spring
spring:
application:
# 应用名称
name: 你的应用名称
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
重点来了!!!
如果以上配置都没有问题,那么你的配置nacos是肯定ok的,不存在说是nacos配置出错的。问题就出在这台“新鲜”的服务器害死人了,因为主机名没有和ip对应起来所以你的应用注册nacos服务的时候,找不到!超时!
问题解决
谢天谢地终于让我找到了一个能解决我问题的文章,以下是转载,全是这个博主的功劳,我分逼不占。
跳转地址: nacos集群配置问题.
我记录一下这个解决办法:
修改文件/etc/hosts,添加一行配置让localhost和主机名对应起来。
其中10-100-0-19是你linux的主机名称
[root@10-100-0-19 ~]# vim /etc/hosts
127.0.0.1 localhost 10-100-0-19 # 添加这一行
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
如上你的应用就可以正常注册到nacos服务上了。
在这再次谢谢那篇博客的博主。