错误描述
nacos启动出现 failed to req api:/nacos/v1/ns/instance after all servers
([192.168.99.100:3333, 192.168.99.100:5555]) tried:
failed to req api:192.168.99.100:3333/nacos/v1/ns/instance.
code:500 msg: java.net.sockettimeoutexception: read timed out
错误分析
出现此项错误的原因在于:
配置了 nacos 集群。
分别启动单个nacos时,会监测 cluster.conf文件中的信息,当其中配置了其他nacos时,若其他未启动,则会出现上述报错!
错误解决
nacos 配置了集群后出现的问题,需要在配置中增加:
添加启动参数-dnacos.standalone=true
如:
sh startup.sh -p 3333 -m standalone sh startup.sh -p 5555 -m standalone
此处的 -p 在原有 startup.sh中没有,只是额外加的配置信息,可以忽略。
如果也想能够实现指定端口启动方式,可以修改startup.sh文件信息:
startup.sh 文件中自带的逻辑代码为:

此时,需要增加一个 port 性质的启动:

while getopts ":m:f:s:p:" opt
do
case $opt in
m)
mode=$optarg;;
f)
function_mode=$optarg;;
s)
server=$optarg;;
p)
port=$optarg;;
?)
echo "unknown parameter"
exit 1;;
esac
done末尾追加启动脚本配置:

# start
echo "$java ${java_opt}" > ${base_dir}/logs/start.out 2>&1 &
#nohup $java ${java_opt} nacos.nacos >> ${base_dir}/logs/start.out 2>&1 &
### change this code to add port start application
nohup $java -dserver.port=${port} ${java_opt} nacos.nacos >> ${base_dir}/logs/start.out 2>&1 &
echo "nacos is starting,you can check the ${base_dir}/logs/start.out"保存,退出!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论