在学习SpringCloud时,利用Nacos实现微服务的注册发现,管理所有的微服务,监控所有微服务的状态,去做服务治理。
首先我们需要去下载一个nacos,可以利用docker一键部署。
注意:可以不用下载命令去下载nacos,可以直接部署nacos,因为如果部署的nacos版本不存在,docker会自动下载nacos。
docker run -d \
--name nacos \
--env-file ./nacos/custom.env \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
nacos/nacos-server:lastest
当nacos成功部署,利用docker的命令:docker ps -a,查询nacos的状态,发现已经启动了。
但是利用Ip和8848端口访问Nacos,发现连接不上,启动idea的服务,遇到了Failed to start bean ‘webServerStartStop‘;的错误。网上发现很多都是去修改nacos的配置,但是还有可能是Nacos没有启动的原因。
可以利用命令:docker logs -f nacos,来查询nacos的日志,发现报错:No DataSource set,原因是Nacos容器没有和MySQL容器放在一个网段里。
可能之前利用docker compose,已经把mysql、nginx、项目文件都已经部署好了,放在了同一个网段中。但是新加进来的nacos容器只配置了端口,没有加入mysql、nginx、项目文件的网段中,产生了报错。
tips:有时候发现利用docker compose无法成功创建mysql、nginx和项目文件的容器,会报错,但是查询docker的状态是active,可以试一下指令systemctl restart docker,重新启动一下docker,或许可以解决docker compose一键创建容器不成功的问题。
可以利用命令:docker insepect nacos;docker insepect mysql,来查询nacos和mysql的网段,可以发现nacos确实不在MySQL的网段中,
只需要利用命令:docker network connect [网段名] nacos;
让nacos加入到MySQL的网段里就ok了,之后再查询nacos的日志,会发现成功连接:
之后就能成功访问Nacos,Nacos服务就成功启动了,之后再启动idea的服务,成功解决Failed to start bean 'webServerStartStop';报错。