nacos(Dynamic Naming and Configuration Service),na:注册中心(naming/nameServer),co:配置中心(Configuration),s:服务(Service)服务是为注册中心和配置中心提供服务。nacos支持三种部署模式:

  • 单机模式
  • 集群模式
  • 多集群模式

    安装

    单机模式

    # 下载nacos
    wget https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.tar.gz
    # 解压
    tar -zxvf nacos-server-2.0.3.tar.gz
    
    # 启动nacos
    cd nacos
    ./bin/startup.sh -m standalone

    集群模式

    1.下载并解压

    # 下载nacos
    wget https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.tar.gz
    # 解压
    tar -zxvf nacos-server-2.0.3.tar.gz

    2.配置cluster.conf文件

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

    cluster.conf文件配置内容:

    # 主机配置格式,IP:PORT,默认端:8848
    192.168.1.150
    192.168.1.151
    192.168.1.152

    3.要启用nacos集群模式时先要配置数据源,数据源可以配置成MySQL,见下文《配置数据源》章节。
    4.在各个主机上执行启动节点

    ./bin/startup.sh

    keepalived实现nacos高可用

    keepalived实现高可用请参考Keepalived服务高可用
    1.修改keepalived.conf配置文件

    vim /etc/keepalived/keepalived.conf
    # 定时监听nacos状态脚本
    vrrp_script check_nacos_alive {
      script "/etc/keepalived/check_nacos.sh"
      # 监听间隔
      interval 2
      # 如果脚本运行成功,则升级权重+10
      weight 10
    }
    
    vrrp_instance VI_1 {
      ...
      # 配置成当前节点的IP地址
      unicast_src_ip 192.168.1.150
      # 配其他节点的IP地址
      unicast_peer {
          192.168.1.151
          192.168.1.152
      }
      track_script {
          #追踪 nacos 脚本
          check_nacos_alive
      }
      ...
    }

    2.新增nacos监听脚本

    vim /etc/keepalived/check_nacos.sh
    #!/bin/bash
    
    NACOS_ALIVE=`ps -ef | grep nacos | grep -v grep | wc -l`
    # 如果nacos进程不存在就杀掉keepalived服务
    if [ $NACOS_ALIVE -eq 0 ];then
      killall keepalived
    fi

    3.执行添加权限

    chmod +x /etc/keepalived/check_nacos.sh

    4.重启keepalived服务

    systemctl restart keepalived

    nginx实现nacos高可用

    1.修改nginx.conf配置文件

    vim /usr/local/nginx/conf/nginx.conf

    配置内容:

    upstream nacos_cluster{
      server 192.168.1.150:8848;
      server 192.168.1.151:8848;
      server 192.168.1.152:8848;
    }
    server {
          # 配置监听端口
      listen 8848;
          # 配置域名nacos.bbmax.cc绑定VIP
          server_name nacos.bbmax.cc;
    
      location / {
          proxy_pass http://nacos_cluster;
      }
    }

    2.加载配置

    nginx -s reload

    多集群模式

    Nacos支持NameServer路由请求模式,通过它您可以设计一个有用的映射规则来控制请求转发到相应的集群,在映射规则中您可以按命名空间或租户等分片请求...

    验证服务是否可以用

    方法一:浏览器输入http://192.168.1.150:8848/nacos/index.html
    方法二:查看启动日志vim logs/nacos.log,如果启动日志中包含了Nacos is starting...文本内容表示启动成功
    方法三:输入jps命令或ps -ef|grep nacos命令查看是否有包含nacos的进程名

    配置数据源

    nacos默认采用derby数据库,将derby改为mysql
    创建nacos数据库

    # 登录MySQL终端执行创建nacos_config数据库
    create database if not exists nacos_config default charset utf8 collate utf8_general_ci;

    执行SQL语句:下载SQL脚本

    wget https://raw.githubusercontent.com/alibaba/nacos/master/distribution/conf/nacos-mysql.sql

    执行导入:

    source nacos-mysql.sql

    修改application.properties配置文件,vim conf/application.properties
    修改配置内容:

    # 使用MySQL数据源
    spring.datasource.platform=mysql
    # 数据库实例数量
    db.num=1
    # 配置数据库连接信息
    db.url.0=jdbc:mysql://192.168.1.232:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user.0=root
    db.password.0=123456

    常见问题

    1.nacos默认账号密码
    账号:nacos 密码:nacos

最后修改:2022 年 09 月 04 日
如果觉得我的文章对你有用,请随意赞赏