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全家桶微服务架构
     
     
     
  • 相关阅读:
    uboot的启动过程-FDT
    pat练习
    也不知道 为什么没通过 -------------存疑 ---延后解决
    刚认识--博客园
    MapReduce报错Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio
    Hadoop 学习笔记(十)HDFS 之 集群安全模式 & DateaNode
    Hadoop 学习笔记(九)HDFS 之 NameNode & SecondaryNameNode
    sqlldr 报错:Field in data file exceeds maximum length 解决方法
    Hadoop 学习笔记(八)HDFS 数据的读写
    Hadoop 学习笔记(七)HDFS 客户端操作(下)
  • 原文地址:https://www.cnblogs.com/shsxt/p/13414052.html
Copyright © 2011-2022 走看看