概述:为了nacos的高可用,防止一台服务宕机,我们可以采取集群方式实现实现高可用。nacos服务内部集成了derby小型数据库,集群时则需要多台机器都链接到同一台数据库实现数据共享。部署结果如下:
主要步骤:
- 安装文件的下载与上传到Linux
- 集群环境下配置文件的调整
- 集群多端口参数启动
- 使用nginx 进行负载均衡代理
- 验证测试
一、nacos的linux版本下载与解压
https://pan.baidu.com/s/1N-4Kv3m4rhLp8q3sbg9pCw 提取码: p4in
下载后我们在 linux /root/目录下创建 nacos目录,并上传该压缩包。并使用 tar -zxvf nacos-server-1.2.1.tar.gz 进行解压
二、集群环境下配置文件的调整(三个文件)
1,我们需要调整 conf/application.properties 修改数据存储使用mysql。将下面五项全部放开,使用自己的数据库链接信息
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.17.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
2,将 cluster.conf.example 重命名为 cluster.conf 后内容进行修改,下面我们后面将启动三个服务 端口分别为 7001 7002 7003
192.168.17.134:7001
192.168.17.134:7002
192.168.17.134:7003
3,修改/root/nacos/nacos/bin/ 目录下 startup.sh 文件,调整添加 端口启动参数。调整后我们就可以使用 ./startup.sh -p 7001 进行指定端口启动。
第一处添加一个 p: 参数,以及下面的p) 部分。
第二处末尾添加 -Dserver.port=${PORT}
三、集群多端口参数启动
在/root/nacos/nacos/bin/ 目录下 使用 ./startup.sh -p 700x 分别进行启动,该端口必须为上面步骤中cluster.conf 中的端口
启动日志可以在 /root/nacos/nacos/logs/start.out 文件查看,如果后面有问题可以在此中查看,本人在后面出现无法访问,初始以为是防火墙问题,后来在此文件中看到哦是因为链接的数据库 没有远程链接权限引起,导致启动成功,实际出现无法打开页面。
四、使用nginx 进行负载均衡代理
nginx 配置如下 主要部分为 upstream cluster 和 location / 中部分。
启动命令: ./nginx -c /home/software/nginx-1.8.0/conf/nginx.conf (./nginx 在 nginx安装后的sbin 目录下)
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream cluster{
server 127.0.0.1:7001;
server 127.0.0.1:7002;
server 127.0.0.1:7003;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
# index index.html index.htm;
proxy_pass http://cluster;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
五、验证测试
我们在nginx 里面使用的80端口所以我们访问地址为 http://linuxip/nacos 。并添加配置后可以看到配置信息。