Nacos 1.2.1 的安装和部署 —— 集群版

一、集群部署架构图示

  在进行生产环境部署时,一般都需要采用集群的方式来提高服务器高可用性,Nacos 也不例外。在进行集群部署时,至少需要三个节点来部署 Nacos 集群。然后采用 VIP 的方式访问集群中的各个节点。

二、集群部署环境清单
  • 服务器规划

    服务器名称开放端口号备注
    node10080Nginx 代替 VIP
    node1018848安装 MySQL MIC Router
    node1028848安装 MySQL MIC Router
    node1038848安装 MySQL MIC Router
    node104、node105、node1063306、6446、6447、64460、64470MySQL MIC
  • 部署架构图

    1

三、集群部署前置基础
  1. node100 安装 Nginx 编译 --strem 模块并安装

  2. node101node102node103 分别安装 JAVA_HOME 环境变量并配置 Router 访问node104node105node106MySQL 数据库

    配置 JAVA 环境变量步骤省略

  3. node104node105node106 分别安装 MySQL MIC

    安装 MySQL MIC 步骤请自行查找官网资源

    P.S

四、集群部署详细操作
  1. node101node102node103 分别下载指定版本的 Nacos 安装包

    进入官网下载所需版本的 Nacos 服务安装包(本示例以 1.2.1 为例)

  2. node101node102node103 将安装包下载到安装目标服务器的自定义目录

    # 进入源码下载自定义规划目录
    cd /usr/local/src
    
    # 下载 Nacos 安装包
    wget https://github.com/alibaba/nacos/releases/download/1.2.1/nacos-server-1.2.1.tar.gz
    
  3. node101node102node103 解压 Nacos 安装包

    # 进入源码下载自定义规划目录
    cd /usr/local/src
    
    # 解压 Nacos 到自定义安装目录
    tar -zxvf nacos-server-1.2.1.tar.gz -C ../
    
  4. node101node102node103 分别配置数据库访问地址、Nacos 集群节点、端口和上下文访问路径(三个节点都要执行)

    • cluster.conf 中配置集群节点和端口

      # 进入 Nacos  配置文件所在目录
      cd /usr/local/nacos/conf
      
      # 复制并重命名 cluster.conf.example
      cp cluster.conf.example cluster.conf
      
      # 编辑 cluster.conf 文件,将参与集群的节点和端口加入到文件中
      [root@node101 conf]# vim cluster.conf
      100.100.100.101:8848
      100.100.100.102:8848
      100.100.100.103:8848
      
    • 编辑 application.properties 配置文件对 Nacos 各个节点的 端口号修改和上下文访问路径修改以及 MySQL 数据库的配置(三个节点都要执行)

      # 进入 Nacos  配置文件所在目录
      cd /usr/local/nacos/conf
      
      # application.properties 可以修改启动端口和上下文路径
      ### Default web context path:
      server.servlet.contextPath=/nacos
      ### Default web server port:
      server.port=8848 
      
      # 配置数据库的连接信息,如果采用MHA的方式,配置连接 MySQL VIP ,如果采用 MySQL MIC 则连接本节点的 MySQL Router 地址和端口
      #*************** Config Module Related Configurations ***************#
      ### If user MySQL as datasource:
      #spring.datasource.platform=mysql
      ### Count of DB:
      #db.num=1
      ### Connect URL of DB:
      db.url.0=jdbc:mysql://数据库连接IP:PORT/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
      db.user=用户名
      db.password=密码
      
  5. node101node102node103 分别启动 Nacos 节点(三个节点都要执行)

    # 进入 Nacos  启动命令文件所在目录(node101、node102、node103 分别执行)
    cd /usr/local/nacos/bin
        
    # 通过不同的命令和不同的环境对 Nacos 进行启停操作
    # Linux 启动 Nacos 服务(-m cluster 确定模式为集群模式)
    sh startup.sh -m cluster
    
    # 查看启动日志
    tail -f /usr/local/nacos/logs/start.out
    
  6. 登录任意一个 Nacos 节点查看集群状态

    2

  7. 集群任期说明

    在没有 LEADER 产生之前,集群会进行多次的选举。每次的选举任期会加 1,直到通过任期最大的获取了主的权限后才停止选举任期自增。最后加入的节点已经没有了选举的机会,故直接作为 FOLLOWER 加入,其任期默认是 0。如果某一个或某几个节点都挂了,只要剩余节点不少于 1 + 1/N,那么集群仍然能够正常运行。挂掉的节点重新加入集群后,如果此时集群已经有了 LEADER,那么它的角色一般是 FOLLOWER,它的任期是 0( 就跟一个新节点一样)。当然,如果集群的剩余节点少于 1 + 1/N ,集群仍然是可以工作的,只是已经无法保证高可用了。任期低节点一般是没有资格参与选举的,LEADER 一般是在任期高的几个节点之中产生(至少会有2个节点)。

  8. node100 通过采用 Nginx 来代替 VIP 的功能

    其实操作到步骤 5 就已经完成了 Nacos 集群的部署。但是如果不统一暴露一个唯一地址给使用者,那么集群中的主节点挂掉了,应用就需要跟着切换主节点,完全没有达到高可用的效果。所以我们这里采用 Nginx 来替代 VIP 代理 Nacos 各个节点,完成高可用的配置。

    Nginx 配置文件信息如下

    upstream nacos {
        server 100.100.100.101:8848;
        server 100.100.100.102:8848;
        server 100.100.100.103:8848;
    }
    
    server {
        listen       80;
        server_name  localhost;
    
        location /nacos/ {
            proxy_pass http://nacos;
        }
    }
    
  9. 重启 Nginx 访问 Nginx 的映射即可访问到 Nacos 集群,为应用暴露也暴露 Nginx 的地址

    3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值