一、搭建Naco(集群版)
1.1、前置说明
(1)64位Red Hat7 Linux 系统;
(2)64位JDK1.8+;备注:如果没有安装JDK,请参考【系列二、Linux中安装JDK】
(3)3个或者3个以上Nacos节点才能构成集群(伪分布式);
1.2、下载nacos1.4.2.tar.gz
参考【系列三、下载 & 安装Nacos(单机版)】这里不再赘述!
1.3、上传 & 解压
(1)上传至/opt目录
(2)解压至/usr/local/nacos-cluster/
1.4、拷贝 & 重命名
(1)约定:集群的端口分别为7777、7778、7779
(2)拷贝3份,并重命名nacos7777、nacos7778、nacos7779,然后删除nacos文件夹
1.5、修改配置(注意备份!)
(1)application.properties端口修改:7777、7778、7779
(2)application.properties数据源修改为MySQL(3个配置文件都要修改),修改内容如下:
spring.datasource.platform=mysql
db.num=1
db.url=jdbc:mysql://localhost:3306/nacos?allowPublicKeyRetrieval=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456大坑:
坑一:搭建时为了省事儿,我想连接Window中的nacos,发现死活连接不上,mysql.user#root用户的Host修改为%也不行,后台报错不允许连接!
坑二:连接MySQL改成连接Linux中的MySQL,然后报:com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed!
解决方案:url加一个参数allowPublicKeyRetrieval=true,如上
参考:https://cloud.tencent.com/developer/article/2366608
(3)创建nacos数据库,并初始表,sql脚本在 /usr/local/nacos-cluster/nacos7777/conf/nacos-mysql.sql
(4)拷贝cluster.conf.example 为 cluster.conf,并添加节点配置;
说明:下面的IP为你的Linux服务器的IP地址。
(5)配置startup.sh
备份:
修改前:
修改后:
(6)启动nacos7777,观察能否正常启动,如果能正常启动,再分别启动7778、7779
# 启动7777服务
./startup.sh
# 查看启动日志
tail -1000f /usr/local/nacos-cluster/nacos7777/logs/start.out
7777启动成功,接着分别启动7778、7779!
(7)Nginx反向代理配置 & 启动Nginx
# Nginx Nacos集群
upstream nacosClusterServer{server 127.0.0.1:7777;server 127.0.0.1:7778;server 127.0.0.1:7779;
}
server {listen 7788;server_name 127.0.0.1;location / {proxy_pass http://nacosClusterServer;}
}
(8) spring.cloud.nacos.server-addr=xxx:7788
说明:此处的xxx为你的Nginx所在服务的IP地址,本集群搭建我的Nginx和nacos在同一台机器,如果不在同一台机器,修改为真实IP即可。