美文网首页
Nacos 学习笔记2 - 搭建 Nacos 集群

Nacos 学习笔记2 - 搭建 Nacos 集群

作者: 张云飞Vir | 来源:发表于2021-09-13 20:02 被阅读0次

    1. 背景

    生产环境中往往采用集群的方式保证Nacos的高可用,本文记录了搭建的过程。

    Nacos集群的搭建时要注意:1.xx 版本和 2.xx 版本有区别。从2.0开始Nacos使用了 gRPC ,需要开放额外的端口。我就遇到了 各个 Nacos 节点无法互相复制,注册的服务不一致的情况。

    2. 安装Nacos

    集群模式部署
    这个快速开始手册是帮忙您快速在你的电脑上,下载安装并使用Nacos,部署生产使用的集群模式。

    集群部署架构图


    image.png

    因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面

    http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。

    http://SLB:port/openAPI 挂载SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),直连SLB即可,下面挂server真实ip,可读性不好。

    http://nacos.com:port/openAPI 域名 + SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),可读性好,而且换ip方便,推荐模式

    2.1. 预备环境准备

    请确保是在环境中安装使用:

    64 bit OS Linux/Unix/Mac,推荐使用Linux系统。
    64 bit JDK 1.8+;下载.配置。
    Maven 3.2.x+;下载.配置。
    3个或3个以上Nacos节点才能构成集群。

    2.2. 下载安装包

    下载编译后压缩包方式

    unzip nacos-server-1.3.0.zip 或者 tar -xvf nacos-server-1.3.0.tar.gz
    cd nacos/bin

    2.3. 配置集群配置文件

    在nacos的解压目录nacos/的conf目录下,有配置文件 cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)

    修改 cluster.conf ,命令如下:

    vi cluster.conf
    

    内容如下:

    # ip:port
    200.8.9.16:8848
    200.8.9.17:8848
    200.8.9.18:8848
    

    2.4. 确定数据源

    使用外置数据源
    生产使用建议至少主备模式,或者采用高可用数据库。

    (1) 初始化 MySQL 数据库

    ● 进入nacos/conf目录,找到nacos-mysql.sql。
    ● 登入数据库,创建一个新的数据库,比如叫做 nacos_config。
    ● 并在 mysql 中执行刚刚的找到的 nacos-mysql.sql 文件的语句来创建表。

    (2) application.properties 配置
    修改 application.properties配置文件中的数据源描述

    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://ip:3306/nacos_config?characterEncoding=u
    tf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTC
    db.user=root
    db.password=数据库密码

    2.5. 启动服务器

    在 Linux/Unix/Mac 下安装
    (1) 单机模式 Stand-alone mode

    sh startup.sh -m standalone
    

    (2) 集群模式

    sh startup.sh
    

    6. 配置 Nginx 代理

    编辑文件nginx.conf, 命令:

    $ cd /usr/local/nginx/conf
    $ vi nginx.conf
    

    内容修改:

    upstream serverList {
    server 172.17.0.112:8847;
    server 172.17.0.111:8847;
    server 172.17.0.110:8847;
    }
    
    server {
      location / {
         proxy_pass  http://serverList;
      }
    }
    

    3. Nacos 开机自启的设置

    编辑一个服务文件

    命名为 start-nacos.sh 文件,内容如下:

    #!/bin/bash
    export JAVA_HOME=/opt/data/jdk1.8/jdk1.8.0_161   
    nohup nacos_home/bin/startup.sh -m standalone &
    

    在操作系统启动后 /etc/profile 还未加载,所以这里要先 设置 JAVA_HOME 的环境变量,改成你实际的java jdk 路径。 然后正常启动 nacos 即可。

    在 /etc/rc.local 文件的尾部加上下面的内容即可。

    sh start-nacos.sh 
    

    4. Nacos 2.0.0 和 1.x 的区别

    注意 开放gRPC端口

    Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。

    端口 与主端口的偏移量 描述
    9848 1000 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
    9849 1001 服务端gRPC请求服务端端口,用于服务间同步等

    使用VIP/nginx请求时,需要配置成TCP转发,不能配置http2转发,否则连接会被nginx断开。

    5.参考

    https://nacos.io/zh-cn/docs/2.0.0-compatibility.html

    https://blog.csdn.net/lzzyok/article/details/118057217?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_aggregation-1-118057217.pc_agg_rank_aggregation&utm_term=nacos%E9%9B%86%E7%BE%A4+%E6%9C%8D%E5%8A%A1%E5%88%97%E8%A1%A8%E4%B8%8D%E4%B8%80%E8%87%B4&spm=1000.2123.3001.4430

    相关文章

      网友评论

          本文标题:Nacos 学习笔记2 - 搭建 Nacos 集群

          本文链接:https://www.haomeiwen.com/subject/sngfgltx.html