zoukankan      html  css  js  c++  java
  • 微服务架构系列之Nacos集群环境搭建

    上回我们说到了《微服务架构系列之Nacos 配置核心概念》,这次我们讲讲Nacos 集群环境搭建。
    集群模式跟我们平时进行扩容是一样的,可以通过 Nginx 转发到多个节点,如下图:
    如果为了方便省事,可以使用直连 ip 模式,配置中按如下编写即可:
    spring: # 配置 Nacos 配置中心 cloud: nacos: config: enabled: true # 如果不想使用 Nacos 进行配置管理,设置为 false 即可 server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服务器地址
    PS:如果只是为了学习的话直接在本地启动 3 个实例,通过修改端口的方式即可。本文使用三台服务器的方式带大家搭建环境,其实这种方式反而更简单。
     

    一、环境准备

    Nacos 单节点,也就是我们刚才使用的 standalone 模式,默认使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况,0.7 版本以后增加了支持 MySQL 数据源能力。集群搭建的时候我们需要将 Nacos 对接 Mysql 进行数据存储。如果要搭建高可用的集群环境,至少要满足以下条件:
    • JDK 1.8+;
    • Maven 3.2.x+;
    • MySQL 5.6.5+(生产使用建议至少主备模式,或者采用高可用数据库);
    • 3个或3个以上Nacos节点才能构成集群。

    二、下载源码或者安装包

    可以通过源码和发行包两种方式来获取 Nacos。
    1、源码方式
    从 Github 上下载源码方式。
    it clone https://github.com/alibaba/nacos.git
    cd nacos/
    mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
    ls -al distribution/target/
    
    // change the $version to your actual path
    cd distribution/target/nacos-server-$version/nacos/bin
     
    2、发行包方式
    您可以从 https://github.com/alibaba/nacos/releases 下载最新稳定版本的 nacos-server 包。
     

    三、配置集群配置文件

    将安装包解压。
    tar -zxvf nacos-server-1.3.0.tar.gz -C /usr/local/ # 解压文件至 local 目录
    在 Nacos 的解压目录 nacos/conf 目录下,复制配置文件 cluster.conf.example 并重命名为 cluster.conf,每行配置成 ip:port。(请配置3个或3个以上节点)
    192.168.10.101:8848
    192.168.10.102:8848
    192.168.10.103:8848
     

    四、配置 MySQL 数据库

    Nacos 在0.7版本之前,默认使用的是嵌入式数据库Apache Derby来存储数据(内嵌的数据库会随着 Nacos 一起启动,无需额外安装);0.7版本及以后,增加了对MySQL数据源的支持。
     

    五、MySQL数据源

    环境要求:MySQL 5.6.5+(生产使用建议至少主备模式,或者采用高可用数据库);
    1、初始化 MySQL 数据库
    创建数据库 nacos_config
    SQL源文件地址:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql ,或者在 nacos-server 解压目录 conf 下,找到 nacos-mysql.sql 文件,运行该文件,结果如下:
    2、application.properties 配置
    修改 nacos/conf/application.properties 文件的以下内容。
    最终修改结果如下:
    #*************** Config Module Related Configurations ***************#
    ### If user MySQL as datasource:
    # 指定数据源为 MySQL
    spring.datasource.platform=mysql
    
    ### Count of DB:
    # 数据库实例数量
    db.num=1
    
    # 数据库连接信息,如果是 MySQL 8.0+ 版本需要添加 serverTimezone=Asia/Shanghai
    ### Connect URL of DB:
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
    db.user=root
    db.password=1234
    ❝如果你和我一样使用的是 MySQL 8.0+ 版本,那么启动 Nacos 时肯定会报错。莫慌,在 Nacos 安装目录下新建 plugins/mysql 文件夹,并放入 8.0+ 版本的 mysql-connector-java-8.0.xx.jar,重启 Nacos 即可,启动时会提示更换了 MySQL 的 driver-class 类。
     

    六、启动服务器

    Linux/Unix/Mac
    在 Nacos 的解压目录 nacos/bin 目录下启动。
    启动命令(在没有参数模式,是集群模式):
    sh startup.sh
     

    七、查看启动记录

    可通过 /nacos/logs/nacos.log(详细日志)或 /nacos/conf/start.out(启动记录)的输出内容查看是否启动成功。
    查看命令:
    tail -f /usr/local/nacos/logs/start.out
     
    启动成功输出结果:
    2020-04-29 22:47:56,204 INFO Nacos is starting...
    
    2020-04-29 22:47:56,556 INFO Nacos logs files: /usr/local/nacos/logs/
    
    2020-04-29 22:47:56,556 INFO Nacos conf files: /usr/local/nacos/conf/
    
    2020-04-29 22:47:56,556 INFO Nacos data files: /usr/local/nacos/data/
    
    2020-04-29 22:47:56,556 INFO Nacos started successfully in cluster mode.
     

    八、访问

    访问以下链接,默认用户名/密码是 nacos/nacos :
    • http://192.168.10.101:8848/nacos/
    • http://192.168.10.102:8848/nacos/
    • http://192.168.10.103:8848/nacos/
     
    从下图可以看到集群节点共有三个,其中 192.168.10.101:8848leader
     

    九、关闭服务器

    Linux/Unix/Mac
    sh shutdown.sh
     

    十、测试

    1、直连 ip 模式
    发布配置
    选择 配置管理配置列表 页面,点击最右侧 + 按钮新建配置。
    Data ID: product-service.yaml
    Group: DEFAULT_GROUP
    Configuration format: YAML
    Configuration content: project.name: SpringCloudAlibaba
                           project.org: Aliababa
     
    获取配置
    bootstrap.yml
    server:
      port: 7070 # 端口
    
    spring:
      application:
        name: product-service # 应用名称
      cloud:
        nacos:
          config:
            enabled: true # 如果不想使用 Nacos 进行配置管理,设置为 false 即可
            server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服务器地址,集群版直连 ip 模式
            group: DEFAULT_GROUP # 组,默认为 DEFAULT_GROUP
            file-extension: yaml # 配置内容的数据格式,默认为 properties
     
    使用之前的控制层代码,访问:http://localhost:7070/config 结果如下:
     
    2、Nginx 转发
    再启动一台服务器 192.168.10.100,安装 Nginx,配置代理转发规则。
    upstream nacos {
        server 192.168.10.101:8848;
        server 192.168.10.102:8848;
        server 192.168.10.103:8848;
    }

     
    3、获取配置
    bootstrap.yml
    server:
      port: 7070 # 端口
    
    spring:
      application:
        name: product-service # 应用名称
      cloud:
        nacos:
          config:
            enabled: true # 如果不想使用 Nacos 进行配置管理,设置为 false 即可
            server-addr: 192.168.10.100:80 # Nacos 服务器地址,集群版 Nginx 转发
            group: DEFAULT_GROUP # 组,默认为 DEFAULT_GROUP
            file-extension: yaml # 配置内容的数据格式,默认为 properties

     
    使用之前的控制层代码,访问:http://localhost:7070/config 结果如下:
    至此 Nacos 配置中心所有的知识点就讲解结束了,作者为 哈喽沃德先生,感谢关注 哈喽沃德先生公众号。获取微服务架构视频教程,请点:spring全家桶微服务架构
     
     
     
  • 相关阅读:
    ASE19团队项目 beta阶段 model组 scrum report list
    ASE19团队项目 beta阶段 model组 scrum7 记录
    ASE19团队项目 beta阶段 model组 scrum6 记录
    ASE19团队项目 beta阶段 model组 scrum5 记录
    ASE19团队项目 beta阶段 model组 scrum4 记录
    ASE19团队项目 beta阶段 model组 scrum3 记录
    ASE19团队项目 beta阶段 model组 scrum2 记录
    ASE19团队项目 beta阶段 model组 scrum1 记录
    【ASE模型组】Hint::neural 模型与case study
    【ASE高级软件工程】第二次结对作业
  • 原文地址:https://www.cnblogs.com/shsxt/p/13414052.html
Copyright © 2011-2022 走看看