Linux部署Nacos集群(各种踩坑)


环境
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挺耗内存的

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值