1 介绍

本文章介绍Linux单机下学习安装Nacos集群的部署。通过nginx代理三个nacos的服务,安装的nacos版本为1.4.2,Linux的版本为centos7,nginx为1.18.0。

2 下载

nacos :https://github.com/alibaba/nacos/tags 选择对应的版本下载,tar.gz为linux的版本,zip为windows的版本。

3 安装

3.1 安装包准备

通过XFTP上传安装包,或者通过wget命令下载安装包。

3.2 解压安装包

tar -xzvf nacos-server-1.4.2.tar.gz

3.3 MySQL数据库初始化

1.进入conf目录下载对应的数据库初始化脚本。 /nacos/conf/nacos-mysql.sql 2.通过Navicat等数据库连接工具连接上数据库,创建数据库,并执行数据库初始化脚本。 数据库名(可以自定义):nacos_config 字符集:utf-8 排序规则:utf8_general_ci

3.4 修改application.properties

配置nacos的MySQL数据库连接,注意目前nacos只支持MySQL数据库,数据库要5.6.5+版本以上。 1.进入目录 cd /nacos/conf 2.备份application.properties cp application.properties application.properties.bk 3.编辑application.properties vim application.properties

# MySQL Config
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://192.168.123.151:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=GMT%2B8
db.user=root
db.password=123456

保存 :wq

3.5 配置集群配置文件

1.进入目录 cd /nacos/conf 2.复制文件 cp cluster.conf.example cluster.conf 3.编辑文件 每行配置成ip:port。(请配置3个或3个以上节点) vim cluster.conf 案例:

#it is ip
#example
192.168.123.179:3333
192.168.123.179:4444
192.168.123.179:5555

3.6 编辑nacos启动脚本

这里为了单台机子启动三个nacos所以才修改启动脚本,正常集群的部署不需要修改。 1.进入目录 cd /nacos/bin 2.备份文件 cp startup.sh startup.sh.bk 3.修改内容。

# 修改原有的p参数为e,并新增p参数
while getopts ":m:f:s:c:e:p:" opt
do
    case $opt in
        m)
            MODE=$OPTARG;;
        f)
            FUNCTION_MODE=$OPTARG;;
        s)
            SERVER=$OPTARG;;
        c)
            MEMBER_LIST=$OPTARG;;
        e)
            EMBEDDED_STORAGE=$OPTARG;;
        p)
            PORT=$OPTARG;;              #增加端口映射
        ?)
        echo "Unknown parameter"
        exit 1;;
    esac
done

# 修改启动的内存 单机启三个实例的最好改小点
if [[ "${MODE}" == "standalone" ]]; then
    JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
    JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
    if [[ "${EMBEDDED_STORAGE}" == "embedded" ]]; then
        JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true"
    fi
    JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
    JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"

# 文章末尾修改,nuhup增加端口映射
echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"

3.7 启动nacos

注意每个nacos都需要单独,所以复制出两份nacos: cp -r nacos nacos1cp -r nacos nacos2 分别进入nacos、nacos1、nacos2的bin目录启动nacos: ./startup.sh -p 3333./startup.sh -p 4444./startup.sh -p 5555 查看是否全部启动完成: ps -ef | grep nacos 查看日志: tail -f ../conf/start.out

3.8 编辑Nginx配置

1)备份nginx配置文件 cp nginx.conf nginx.conf.bk 2)修改Nginx的nginx.conf。

#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

#配置集群
upstream cluster{
       server 127.0.0.1:3333;
       server 127.0.0.1:4444;
       server 127.0.0.1:5555;

    }

    server {
        listen       1111;
        server_name  localhost;

        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass http://cluster;
        }
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

3.9 开启端口

开启端口: firewall-cmd --permanent --add-port=1111/tcp 重启防火墙: firewall-cmd --reload 查看端口是否开放成功: firewall-cmd --query-port=1111/tcp

3.10 启动nginx

进入nginx的sbin目录 ./nginx

3.11 测试

http://ip:1111/nacos/#/login 访问成功集群即配置成功。

4 问题

4.1 单例模式启动命令

stratup.cmd -m standalone

5 参考资料:

官网文档:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 第三方文档:https://blog.csdn.net/qq_41522089/article/details/107074476