环境
Nacos
Nginx 1.20
Mysql 5.7
注意,如果Nacos和Mysql版本不匹配,Nacos自带连接驱动版本过低,会启动不了,网上搜一下Nacos和Mysql版本就行了
1、更换数据库
因为每台Nacos自带嵌入式数据库,布置集群的话,三台Nacos数据不统一,所以使用同一数据库MySql
nacos安装目录的conf下有一个mysql脚本,生成nacos所需表
nacos/conf//nacos-mysql.sql
登录数据库
mysql -u账户 -p密码
create database nacos_config;
use nacos_config;
在该库下执行脚本
source nacos/conf/nacos-mysql.sql;
退出数据库
vim nacos/config/application.properties
将以下内容粘贴后保存退出(esc+wq)
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
数据库切换完成
2、集群配置
集群配置文件的备份
nacos/conf/cluster.conf.example
拷贝备份
cp cluster.conf.example cluster.conf
vim cluster.conf
以 服务ip:服务端口 的方式将服务添加到一个集群里,
以下表明集群有三台nacos服务,分别部署在3333、4444和5555端口
192.168.91.128:3333
192.168.91.128:4444
192.168.91.128:5555
nacos/bin/startup.sh
编辑nacos启动脚本,希望通过./startup.sh -p 3333 的方式指定端口启动服务
但是并不支持,所以需要自己添加
拷贝备份
cp startup.sh startup.sh.bk
vim startup.sh
中间位置 添加 p参数,有的高版本可能p已经被其他参数占了,换一个就行,我换的o
最后 nohup
接受port参数
nohup $JAVA -Dserver.port=${PORT}
3、Nginx配置反向代理和负载均衡
配置文件
nginx/conf/nginx.conf
vim nginx.conf
http块修改如下:
upstream cluster{
server 192.168.91.128:3333;
server 192.168.91.128:4444;
server 192.168.91.128:5555;
}
#通过192.168.91.128:1111代理到集群
server {
listen 1111;
server_name 192.168.91.128;
location / {
proxy_pass http://cluster;
root html;
index index.html index.htm;
}
#..................
}
4、启动集群
1、重启nginx
在nginx/sbin目录下执行
./nginx -s reload
2、开启集群各服务
nacos/bin/startup.sh
./startup.sh -p 3333
如果启动客户端服务连接nacos报read time out ,使用以下指令启动
./startup.sh -m standalone -p 3333
.....
查看nacos服务个数
ps -ef|grep nacos|grep -v grep|wc -l
通过代理访问集群
192.168.91.128:1111/nacos
可以通过nacos/logs/start.out 查看启动日志
5、集群架构
6、常见错误
我全遇到了,太惨了
1、Nacos和MySQL版本不匹配
2、MySQL连接时间过长,更改application配置文件的连接参数
connectTimeout=1000&socketTimeout=3000,这两参数加大就行了
3、JDBC参数符号错误
4、服务器内存不够,nacos挺耗内存的