背景
LINUX 服务器:3台
NACOS 版本: 2.0.3 docker
数据库:无
springboot: 2.1.16.RELEASE
com.alibaba.cloud:2.1.3.RELEASE
控制台可以正常登陆访问进行CRUD
配置文件可以正常读取
异常
2021-09-02 11:16:19.804 [main] ERROR com.alibaba.nacos.client.naming:548- request: /nacos/v1/ns/instance/list failed, servers: [XXX:8848], code: 500, msg: server is DOWNnow, detailed error message: Optional[Distro protocol is not initialized]
2021-09-02 11:16:19.805 [main] ERROR com.alibaba.nacos.client.naming:304- [NA] failed to update serviceName: DEFAULT_GROUP@@freyja
com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance/list after all servers([XXX:8848]) tried: ErrCode:503, ErrMsg:server is DOWNnow, detailed error message: Optional[Distro protocol is not initialized]
at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:552)
at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:491)
at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:486)
at com.alibaba.nacos.client.naming.net.NamingProxy.queryList(NamingProxy.java:400)
at com.alibaba.nacos.client.naming.core.HostReactor.updateService(HostReactor.java:339)
at com.alibaba.nacos.client.naming.core.HostReactor.updateServiceNow(HostReactor.java:302)
at com.alibaba.nacos.client.naming.core.HostReactor.getServiceInfo(HostReactor.java:277)
at com.alibaba.nacos.client.naming.NacosNamingService.subscribe(NacosNamingService.java:446)
at com.alibaba.cloud.nacos.discovery.NacosWatch.start(NacosWatch.java:124)
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182)
at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53)
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360)
at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158)
at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:894)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:162)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:744)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:391)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204)
at com.csair.freyja.FreyjaApplication.main(FreyjaApplication.java:41)
百度一番基本没什么帮助
然后开始自行修BUG的旅程
先看看异常提示的API
http://ip:8848/nacos/v1/ns/instance/list
server is DOWNnow, detailed error message: Optional[Distro protocol is not initialized]
日志:
protocol-distro.log 以及 naming-distro.log
查看官网issue
发现也找不到什么有用的信息
版本2以前基本没这个问题,而2以后有此问题
可以基本确定是发现服务和版本问题
查看官网2以后发生什么变化,找到有一个有用的信息
新版本部署
发现原来2.0后是有gRPC的更新
如果docker需要3台不在同一台服务器就要打开这两个端口
总共要4个
8848:nacos默认端口
7848:nacos集群发现端口
9848和9849:分别是客户端和服务端的同步端口必须映射和打开才能做交互
PS:如果非docker部署,直接jar运行记得不能连续3个端口
默认 :GRPC
第一台
8848:9848和9849
第二台
8849:9849和9850
第三台
8850:9850和9851
会发现第一台的grpc和第二胎的9849冲突,他们不会自动往后移的。所以搭建的时候要间隔一位。
我是这样配的就可以顺利启动三台
8846\8848\8850
docker 配置文件3台要修改IP
docker run -d \
--name nacos-server \
--restart always \
-e MODE=cluster \
-e NACOS_SERVER_PORT=8848 \
-e NACOS_SERVERS="ip1:8848 ip2:8848 ip3:8848" \
-e NACOS_SERVER_IP=ip1 \
-e EMBEDDED_STORAGE=embedded \
-e TZ=Asia/Shanghai \
-e JVM_XMS=256m \
-e JVM_XMX=512m \
-p 8848:8848 \
-p 7848:7848 \
-p 9848:9848 \
-p 9849:9849 \
-v /var/nacos/logs:/home/nacos/logs \
-v /var/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
nacos:443/nacos-server:2.0.3
我要,,,,努力,,,,,,一点 >_<