一、前言
nacos是阿里开源的一个集服务发现与配置管理与一体的项目,可以帮我们微服务实现动态服务发现、服务配置、服务元数据及流量管理。本篇文章主要纪录nacos集群的搭建过程。
nacos主要依赖环境为64位的jdk1.8+版本
本次主要在三台虚拟机安装:server1:192.168.1.161、server2:192.168.1.162、server3:192.168.1.163
二、下载、编译
1、nacos项目自身相对较大,而受网络的影响从github上下载较慢,可以gitee进行下载
git clone https://gitee.com/mirrors/Nacos.git
2、编译
在下载好的nacos根目录执行打开命令行,执行mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U进行编译打包,也可以下载官方已经编译好的包,地址为:https://github.com/alibaba/nacos/releases/download/1.3.0/nacos-server-1.3.0.tar.gz
拷贝nacos/distribution/target/nacos-server-1.3.2.tar.gz到server1的/data目录下
解压tar -zxf nacos-server-1.3.2.tar.gz
三、修改相关配置
1、修改集群配置/data/nacos/conf/cluster.conf
#打开配置文件所在目录
cd /data/nacos/conf/
#修改集群配置文件名
mv cluster.conf.example cluster.conf
#修改集群配置
vim cluster.conf
192.168.1.161:8848
192.168.1.162:8848
192.168.1.163:8848
2、修改数据源配置/data/nacos/conf/application.properties
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.1.163:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos123
3、创建数据库nacos,执行/data/nacos/conf/nacos-mysql.sql脚本
4、创建帐号nacos/nacos123
CREATE USER 'nacos'@'%' IDENTIFIED BY 'nacos123';
GRANT ALL ON nacos.* TO 'nacos'@'%';
四、复制配置好的项目到其他两台服务器
1、window下编译出来的shell脚本中多了^M符号会导致执行的时候报语法错误,可以通过cat -v startup.sh查看,如果带^M符号,可以通过以下命令删除掉
sed -i 's/\r//g' /data/nacos/bin/startup.sh
sed -i 's/\r//g' /data/nacos/bin/shutdown.sh
2、复制到另外两台服务器
scp -r /data/nacos/ root@server2:/data/
scp -r /data/nacos/ root@server3:/data/
五、启动并登陆测试
1、逐台机器进行启动
#逐台执行以下命令启动nacos服务
sh /data/nacos/startup.sh
2、登陆测试,默认的账号密码nacos/nacos
http://192.168.1.161:8848/nacos
http://192.168.1.162:8848/nacos
http://192.168.1.163:8848/nacos
3、测试服务注册、服务发现、发布配置、获取配置
在其中一台机器执行curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'可以同时在三台机器的服务列表中看到对应的服务nacos.naming.serviceName
通过curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName'可以看到成功获取到nacos.naming.serviceName相关信息
通过curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"可以发布配置nacos.cfg.dataId
通过curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"可以获取到nacos.cfg.dataId的配置内容
六、其他更多参数配置以及API可以参考官网
开放API:https://nacos.io/zh-cn/docs/open-api.html
更多参数:https://nacos.io/zh-cn/docs/system-configurations.html