zoukankan      html  css  js  c++  java
  • Linux版Nacos+MySQL生产环境配置集群

    配置要求

    组成架构:1个Nginx(做代理使用)+3个nacos注册中心+1个mysql

    安装环境要求:linux+nginx+mysql(要求已搭建好)

    3个nacos注册中心在linux上使用三个进程(三个端口号)来模拟三个集群(修改nacos启动脚本实现目标)

    配置步骤

    第一步:下载Nacos的linux版本安装包

    https://github.com/alibaba/nacos/releases/tag/1.1.4(版本可自行调整)

    第二步:下载后解压

    tar -xvzf nacos-server-1.1.4.tar.gz
    
    解析后:
    
    nacos
    

    第三步:在解压后的nacos目录中进入config目录并找到nacos-mysql.sql文件,在mysql数据库中执行

    cd nacos/config
    
    执行nacos-mysql.sql到mysql
    

    第四步:修改nacos使得nacos可以连接mysql数据

    修改application.properties配置
    
    cd nacos/config
    
    vim application.properties
    
    参考官网配置在最后一行配置相应信息 https://nacos.io/zh-cn/docs/deployment.html
    
    spring.datasource.platform=mysql
    
    db.num=1
    db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=nacos_devtest
    db.password=youdontknow
    
    

    第五步:配置伪集群,使用3333、4444、5555三个端口模拟集群

    cd nacos/config
    cp ./cluster.conf.example ./cluster.conf #复制默认的配置文件使其生效
    vim ./cluster.conf
    
    文件中添加三行
    #ip必须使用hostname -i得出的ip
    ip:3333
    ip:4444
    ip:5555
    
    
    

    编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端(模拟集群)

    配置文件中一下内容做修改
    
    while getopts ":m:f:s:p:" opt #此处添加 p:
    do
        case $opt in
            m)
                MODE=$OPTARG;;
            f)
                FUNCTION_MODE=$OPTARG;;
            s)
                SERVER=$OPTARG;; #此处添加 SERVER=$OPTARG;;
    	p)	
    	    PORT=$OPTARG;;
            ?)
            echo "Unknown parameter"
            exit 1;;
        esac
    done
    
    ....
    
    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 & #此处添加 -Dserver.port=${PORT}
    echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"
    
    

    分别用三个端口启动:

    ./start.sh -p 3333
    ./start.sh -p 4444
    ./start.sh -p 5555
    
    由于采用集群方式部署,如果启动报错内存布不足,请再start.sh文件中修改jvm参数
    if [[ "${MODE}" == "standalone" ]]; then
        JAVA_OPT="${JAVA_OPT} -Xms64m -Xmx64m -Xmn40m" #-Xms64m -Xmx64m -Xmn40m为单机模式修改结果
        JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
    else
        JAVA_OPT="${JAVA_OPT} -server -Xms64m -Xmx64m -Xmn40m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" #-Xms64m -Xmx64m -Xmn40m 为集群模式修改结果
        JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
        JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
    
    fi
    
    
    ######
    -Xms2g代表初始分配内存2g;
    -Xmx2g代表jvm内存最大值;
    -Xmn1g代表新生代内存为1g;
    
    
    启动成功后使用 ps -ef | grep nacos|grep -v grep|wc -l
    检查是否是 3 ,为3则全部启动成功!
    

    修改nginx配置,代理1111端口根目录到本机三个端口,作为负载均衡器

    vim /usr/local/nginx/config/nginx.conf
    添加如下配置
    upstream cluster{                                                        
     
        server 127.0.0.1:3333;
        server 127.0.0.1:4444;
        server 127.0.0.1:5555;
    }
    
    
    server{
                              
        listen 1111; #监听1111端口
        server_name localhost;
        location /{
             proxy_pass http://cluster;
                                                            
        }
    ....省略  
    
    
    最后使用命令执行nginx
    ./nginx -c /usr/local/nginx/conf/nginx.conf
    
    

    结果测试:

    使用http://写你自己的ip:1111/nacos/#/login 即可等登录nacos

  • 相关阅读:
    vue input输入框长度限制
    vue中input输入框的模糊查询实现
    腾讯云服务器配置node环境
    axios中的this指向问题
    腾讯云服务器 ubuntu 设置允许root用户登录
    nodejs+express+mongodb写api接口的简单尝试
    通过fromdata实现上传文件
    阿姆斯特朗数
    Mac上webstorm与git仓库建立连接
    iOS学习——属性引用self.xx与_xx的区别
  • 原文地址:https://www.cnblogs.com/sxblog/p/14350879.html
Copyright © 2011-2022 走看看