nacos是国内互联网大厂阿里的开源项目,与zookeeper和eureka作为注册中心,在国内市场应用场景十分广泛。本节主要讲述nacos集群搭建以及使用过程中遇到的问题。

nacos版本对照关系

选择nacos时一定要注意版本,要和Java项目的相关SpringCloud库保持一致,减少因版本不同导致的一系列的问题。下图我列举SpringCloudAlibaba不同的开源组件的版本依赖。

spring cloud 多人开发 nacos命名空间设置 springcloud nacos集群_mysql

后续有新的版本大家也可访问githup直接查找。相关地址如下:

SpringCloudAlibaba相关组件版本对应关系

spring cloud 多人开发 nacos命名空间设置 springcloud nacos集群_服务器_02

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E这里我使用的nacos版本为2.0.3,大家可去网上直接下载,也可通过下面地址下载

我这里使用的是linux版本,没有linux环境的,搭建可以安装虚拟机运行。

准备工作

jdk版本:1.8+

mysql:5.6+

nacos版本:2.0.3

在安装nacos之前,服务器上需要先安装jdk,并准备好mysql数据库的服务器。nacos集群,需持久化部署以及保存配置信息都需要mysql数据库,mysql安装位置没有限制,只要部署nacos服务器可连接访问即可。

将nacos安装包拷贝到虚拟机或者服务器上,移动指定目录解压

mv nacos-server-2.0.3.tar.gz /opt
tar -zxvf nacos-server-2.0.3.tar.gz

mysql初始化

把nacos解压以后,进入nacos配置的文件夹,找到nacos-mysql.sql的文件,新增一个数据库名字随意,或者不增加在mysql原有的数据库中执行macos-mysql.sql命令。nacos-mysql.sql位置如下

spring cloud 多人开发 nacos命名空间设置 springcloud nacos集群_mysql_03

 nacos集群配置

把application.properties.example配置文件复制并重新命名为application.properties,更改下图红框配置。

spring cloud 多人开发 nacos命名空间设置 springcloud nacos集群_微服务_04

 server.port为nacos的访问端口,三台服务器或者虚拟机配置文件依次为8845、8846、8847;db.url填写mysql数据库连接,db.user.0和db.password.0分为访问数据库的用户名和密码。

这里特别注意,nacos-inetutils.ip-address一定要和下面cluster.conf保持一致,即本机ip,如果填写127.0.0.1或者localhost可能会导致如下“Nacos cluster is running with 1.X mode, can't accept gRPC request temporaril”的错误。

把cluster.conf.example配置文件复制并重新命名为cluster.conf,并配置。

spring cloud 多人开发 nacos命名空间设置 springcloud nacos集群_配置文件_05

上图中三个IP和端口对应服务器IP以及nacos中配置端口。   

删除data目录文件

配置完成后,进入data文件夹,删除data下的文件,如果是从单机切换为集群时,一定要删除。删除前先保存好已上线的项目的配置信息文件。

spring cloud 多人开发 nacos命名空间设置 springcloud nacos集群_配置文件_06

集群启动 

进入bin文件夹,执行启动命令,执行tail -f 监听启动日志情况,日志中出现successfully,表示启动成功。

cd /opt/nacos/bin
sh startup.sh
tail -f /opt/nacos/logs/start.out

等三个nacos全部启动完成,表示集群启动成功,日志信息下图。

spring cloud 多人开发 nacos命名空间设置 springcloud nacos集群_微服务_07

nacos页面访问

spring cloud 多人开发 nacos命名空间设置 springcloud nacos集群_微服务_08

默认的账号密码为nacos,输入登录,你可以使用三个服务器的中任何一个IP加端口访问,登录结果如下图

spring cloud 多人开发 nacos命名空间设置 springcloud nacos集群_服务器_09