java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Nacos failed to req API:/nacos/v1/ns/instance after all servers

Nacos启动出现failed to req API:/nacos/v1/ns/instance after all servers问题

作者:专注写bug

这篇文章主要介绍了Nacos启动出现failed to req API:/nacos/v1/ns/instance after all servers问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

错误描述

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"

保存,退出!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文