项目连接nacos配置中心报错:Client not connected, current status:STARTING的解决方案
一、 运行环境
nacos版本:2.2.3
mysql版本:5.7
采用了mysql作为持久化的数据库,docker作为运行的环境
二、启动nacos
采用 docker 的形式运行 mysql 和 nacos
起初运行 nacos 的 docker 命令:
docker run -d -e MODE=standalone -e PREFER_HOST_MODE=hostname -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=本机地址 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e MYSQL_SERVICE_DB_NAME=nacos-config -p 8848:8848 --name nacos --restart=always nacos/nacos-server:latest
命令解释:docker run:
这是Docker的一个命令,用于从Docker镜像创建并启动一个容器。-d:
这个选项告诉Docker在后台运行容器,并返回容器ID。-e:
这个选项用于设置环境变量。例如,-e MODE=standalone 设置了环境变量MODE的值为’standalone’。-p:
这个选项用于端口映射,例如 -p 8848:8848 将主机的8848端口映射到容器的8848端口。--name:
这个选项用于给容器命名,此处的名字为’nacos’。--restart=always:
这是一个策略,表明如果容器退出,Docker应该总是尝试重新启动它。nacos/nacos-server:latest:
这是要运行的Docker镜像的名称,其中’nacos/nacos-server’是镜像的仓库和名称,'latest’是标签,表示要使用的是最新的版本。
nacos可以正常启动,然后也可以访问web控制台。但是事情还没完
二、出现问题
然后我启动项目连接 nacos 的时候报错:Client not connected,current status:STARTING,StatusRuntimeException
一盆冷水从头浇到脚底板。。。。/(ㄒoㄒ)/~~
经过多方查找,发现 nacos 2.x.x 需要在启动的时候多映射两个端口:9848,9849
官方解释如下:
Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。
端口 | 与主端口的偏移量 | 描述 |
---|---|---|
9848 | 1000 | 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 |
9849 | 1001 | 服务端gRPC请求服务端端口,用于服务间同步等 |
更多解释移步官网查看:https://nacos.io/zh-cn/docs/v2/upgrading/2.0.0-compatibility.html
所以修改后的 docker 启动命令应该是:
docker run -d -e MODE=standalone -e PREFER_HOST_MODE=hostname -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=本机地址 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e MYSQL_SERVICE_DB_NAME=nacos-config -p 8848:8848 -p 9848:9848 -p 9849:9849 --name nacos --restart=always nacos/nacos-server:latest
到此这篇关于项目连接nacos配置中心报错:Client not connected, current status:STARTING的文章就介绍到这了,更多相关nacos配置中心报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java面试题之HashMap 的 hash 方法原理是什么
那天,小二去蔚来面试,面试官老王一上来就问他:HashMap 的 hash 方法的原理是什么?当时就把裸面的小二给蚌埠住了,这篇文章将详细解答该题目2021-11-11Spring Boot利用@Async异步调用:使用Future及定义超时详解
这篇文章主要给大家介绍了关于Spring Boot利用@Async异步调用:使用Future及定义超时的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友可以参考下2018-05-05Spring Cloud Gateway 整合 knife4j 聚合接口文档功能
这篇文章主要介绍了Spring Cloud Gateway 整合 knife4j 聚合接口文档的相关知识,我们可以基于 Spring Cloud Gateway 网关 + nacos + knife4j 对所有微服务项目的接口文档进行聚合,从而实现我们想要的文档管理功能,需要的朋友可以参考下2022-02-02
最新评论