zoukankan      html  css  js  c++  java
  • 【Nacos】本地集群部署

    关于Nacos已经展开了四篇入门文章:

    初探Nacos(一)-- 单机模式启动

    初探Nacos(二)-- SpringCloud使用Nacos的服务注册与发现

    初探Nacos(三)-- SpringBoot下整合Dubbo和Nacos

    初探Nacos(四)-- SpringBoot下使用Nacos作为配置中心

    今天,我们开始进一步探索Nacos的使用,分布式集群模式部署Nacos。(另外,目前的Nacos1.0.0稳定版已发布,目前测试暂没有发现问题,我们重新使用1.0.0来演示。)

    当然,我们仍然参考官方文档:集群部署说明,由于集群模式需要用到数据库,此处我们默认你已安装好Mysql数据库, 然后我们到https://github.com/alibaba/nacos/releases下载最新的安装包。

    wget https://github.com/alibaba/nacos/releases/download/1.0.0/nacos-server-1.0.0.zip
    复制代码

    unzip nacos-server-1.0.0.zip

    cd nacos

    cp conf/cluster.conf.example conf/cluster.conf

    需要配置3个或3个以上节点,生产环境建议分布在多台服务器上,目前咱们仅在一台机器上测试。

    vi conf/cluster.conf

    127.0.0.1:8848
    127.0.0.1:8849
    127.0.0.1:8850
    复制代码

    然后进入mysql,创建名为nacos_config的数据库 ,导入config/nacos-mysql.sql。(此处测试暂时使用单机数据库,建议生产环境采用主从等高可模式)

    建完数据库完后,官方文档上默认使用的是内嵌的cmdb数据库,没有Mysql数据库的配置,有点让人懵逼的,百度了一下,找到了配置。

    vi conf/application.properties

    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=数据库用户名
    db.password=数据密码
    复制代码

    另外,由于我们在一台机器上跑三个,因此启动脚本和关闭脚本需要做一点修改。

    cp bin/startup.sh bin/startup-port.sh

    vi bin/startup-port.sh

    export MODE="cluster"
    export FUNCTION_MODE="all"
    export SERVER_PORT="8848"
    while getopts ":m:f:p:" opt
    do
        case $opt in
            m)
                MODE=$OPTARG;;
            f)
                FUNCTION_MODE=$OPTARG;;
            p)
                SERVER_PORT=$OPTARG;;
            ?)
            echo "Unknown parameter"
            exit 1;;
        esac
    done
    JAVA_OPT="${JAVA_OPT} -Dserver.port=${SERVER_PORT}"
    复制代码

    cp bin/shutdown.sh bin/shutdown-port.sh

    vi bin/shutdown-port.sh

    PORT=$1
    if [ ! $PORT ]; then
      echo "please select stop port!" >&2
      exit 1
    fi
    
    pid=`ps ax | grep -i 'nacos.nacos' |grep java |grep ${PORT} | grep -v grep | awk '{print $1}'`
    复制代码

    启动方式如下:

    sh bin/startup-port.sh -p 8848

    sh bin/startup-port.sh -p 8849

    sh bin/startup-port.sh -p 8850

    关闭方式如下:

    sh bin/shutdown-port.sh 8848

    sh bin/shutdown-port.sh 8849

    sh bin/shutdown-port.sh 8850

    启动后就可以在浏览器打开 http://127.0.0.1:8848/nacos/,http://127.0.0.1:8849/nacos/,http://127.0.0.1:8850/nacos/ 即可看到控制台,默认用户名/密码为nacos/nacos。

    附1: 可通过Nginx配置只访问一个地址负载均衡到三个节点上:

    upstream nacos-cluster{
        server 127.0.0.1:8848;
        server 127.0.0.1:8849;
        server 127.0.0.1:8850;
    }
    复制代码

    附2:集群模式下控制台的用户名密码都存在了数据库的users表,用户名直接修改就行,密码需要用org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder加密。

    然后我们就可以在演示项目里尝试,只需在application.properties里将配置由单机模式改成集群模式:

    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
    复制代码

    配置中心的配置需要修改如下:

    nacos.config.server-addr=127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
    复制代码

    dubbo的配置需要修改如下:

    dubbo.registry.address=nacos://127.0.0.1:8848?backup=127.0.0.1:8849,127.0.0.1:8850
    复制代码

    启动项目后,可以测试到服务注册与发现、配置中心等均能像单机模式一样正常使用。我们可以尝试关闭其中一个或两个nacos,仍然不影响系统的正常运行。



    转自:https://juejin.im/post/5cbad19ef265da038b20165e

  • 相关阅读:
    自学华为IoT物联网_10 IoT联接管理平台配置及开发实验1
    自学华为IoT物联网_09 OceanConnect业务流程
    自学华为IoT物联网_08 IoT连接管理平台介绍
    自学华为IoT物联网_07 物联网安全
    自学华为IoT物联网_06 智慧家庭物联网常见问题及解决方案
    自学华为IoT物联网_05 能源工业物联网常见问题及解决方案
    自学华为IoT物联网_04 车联网常见问题及解决方案
    自学华为IoT物联网_03 公共事业物联网常见问题及解决方案
    自学华为IoT物联网_02 常见物联网通信技术
    OpenDCIM-19.01操作手册
  • 原文地址:https://www.cnblogs.com/itplay/p/11039416.html
Copyright © 2011-2022 走看看