1.说明
版本信息:2.2.3
nacos的集群需要3台机器,假定机器上Docker环境已安装,Ip分别为192.168.50.9、192.168.50.18、192.168.50.245,最终部署图如下
2.Nacos集群安装
2.1 初始化Nacos数据库
将Nacos提供的数据库脚本mysql-schema.sql找任意数据库进行导入,或者可以使用PXC方案下的数据库。
2.2 启动集群
根据实际部署,调整NACOS_SERVERS配置,以及连接的mysql配置,使用的网络模式是host,这样Nacos之间通讯就解决了。 3台机器分别执行如下命令
docker run -d -p 8848:8848 -p 7848:7848 -p 9848:9848 -p 9849:9849 \
-v /home/nacos/logs:/home/nacos/logs \
-v /etc/hosts:/etc/hosts \
-e MODE=cluster \
-e NACOS_SERVERS="192.168.50.9:8848 192.168.50.18:8848 192.168.50.245:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_IDENTITY_KEY=linxxx \
-e NACOS_AUTH_IDENTITY_VALUE=linxxx \
-e NACOS_AUTH_TOKEN=linxxxlinxxxlinxxxlinxxxlinxxxlinxxxlinxxxlinxxxlinxxxlinxxx \
-e MYSQL_SERVICE_HOST=192.168.50.123 \
-e MYSQL_SERVICE_PORT=23306 \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=3er4#ER$ \
--restart unless-stopped --net=host --name nacos-cluster nacos/nacos-server:v2.2.3
2.3 验证
需要3台同时启动,等待集群通讯完成后可以使用如下命令查看日志
docker logs nacos-cluster
2.4 Nginx的配置
stream {
upstream nacos-cluster {
server 192.168.50.9:9848;
server 192.168.50.18:9848;
server 192.168.50.245:9848;
}
server{
listen 8800;
proxy_connect_timeout 20s;
proxy_timeout 5m;
proxy_pass nacos-cluster;
}
}
server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
listen 7800;
upstream nacosserver {
server 192.168.50.9:8848;
server 192.168.50.18:8848;
server 192.168.50.245:8848;
}
location /nacos/ {
proxy_pass http://nacosserver/nacos/;
}
}
配置文件说明,对于8800端口的Tcp监听是因为有客户端使用grpc跟nacos进行连接,因为这边http监听的是7800端口,根据Nacos的+1000原则所以是配置了8800。
3.最后说明
对于2.2.3的nacos连接,客户端需要在连接时候指定账密了,否则会出现连接失败的。
关于Nginx与Keepalived的安装,后续补充。