Nacos集群开发
Nacos集群开发
开发前准备
预计需要,1个Nginx+3个nacos注册中心+1个mysql
请确保是在Linux环境中安装使用:
Nacos下载Linux版
- https://github.com/alibaba/nacos/releases/tag/1.1.4
- nacos-server-1.1.4.tar.gz 解压后安装
集群配置步骤(重点)
1.Linux服务器上mysql数据库配置
SQL脚本在哪里 - 目录nacos/conf/nacos-mysql.sql
2.application.properties配置
位置
对application.properties进行编辑
vim application.properties
在文件最后添加以下内容
#############################################################
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://自己的IP地址:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
在这里多说一句本机用虚拟机测试的话IP哪里可以直接使用localhost,如果是用的自己的服务器,一定要确保在Windows能连接,IP哪里写自己服务器的公网IP,不然启动nacos时会造成数据库连接失败的错误,还有一点要注意:就是一定要设置一下在数据库的最大连接数
3.Linux服务器上nacos的集群配置cluster.conf
-
建议复制一份cluster.conf以便出错了恢复
cp cluster.conf.example cluster.conf
修改 vim cluster.conf
添加以下内容
192.168.111.144:3333
192.168.111.144:4444
192.168.111.144:5555
注意,这个IP不能写127.0.0.1,必须是Linux命令hostname -i
能够识别的IP
4.编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口
/usr/local/nacos/bin目录下有startup.sh
平时单机版的启动,都是./startup.sh即可
但是,集群启动,我们希望可以类似其它软件的shell命令,传递不同的端口号启动不同的nacos实例。
命令: ./startup.sh -p 3333表示启动端口号为3333的nacos服务器实例,和上一步的cluster.conf配置的一致。
修改内容
在文件最下面修改以下内容
nohup \(JAVA -Dserver.port=\){PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
注: 在这里注意一个地方,nacos进行集群模式的时候默认的需要的最小内存是1个G,最大是2个G,只要启动nacos就可能报错,直接造成CPU爆满,需要修改startup.sh中的以下内容,把运行内存改小就好了
执行方式 - ./startup.sh - p 端口号
执行后去查看日志有没有成功
全部的日志查看方式less ../logs/start.out
,实时的logstail -f start.out
5.Nginx的配置,由它作为负载均衡器
- 修改nginx的配置文件 - nginx.conf
添加以下内容
upstream cluster{
server 127.0.0.1:3333;
server 127.0.0.1:4444;
server 127.0.0.1:5555;
}
location / {
# root html;
# index index.html index.htm;
proxy_pass http://cluster;
}
修改完后先启动nginx./nginx
,然后对nginx配置文件进行刷新 ./nginx -c reload
6.截止到此处,1个Nginx+3个nacos注册中心+1个mysql已完成了
测试
- 启动3个nacos注册中心
startup.sh - p 3333
startup.sh - p 4444
startup.sh - p 5555
- 查看nacos进程启动数
ps -ef | grep nacos | grep -v grep | wc -l
启动nginx
./nginx -c /usr/local/nginx/conf/nginx.conf
或者直接./nginx
(这种需要在nginx的解压目录中配置一下,好像直接运行也是没问题的 对linux不太熟悉,自行测试吧)- 查看nginx进程
ps - ef| grep nginx
- 测试通过nginx,访问nacos - http://\({服务器IP或者本机IP}:\){Nginx的端口号}/nacos/#/login