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

Posted 玩葫芦的卷心菜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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挺耗内存的

以上是关于Linux部署Nacos集群(各种踩坑)的主要内容,如果未能解决你的问题,请参考以下文章

Nacos Server Docker部署集群踩坑

高可用保证:Nacos 如何有效构建注册中心集群

基于Nacos集群部署

nacos集群部署

实战 Kubernetes 中部署 Nacos 集群

Nacos集群模式 Linux系统