SpringCloud-2.0-周阳(20.Nacos 集群和持久化配置)

Posted ABin-阿斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud-2.0-周阳(20.Nacos 集群和持久化配置)相关的知识,希望对你有一定的参考价值。

上一篇 :19. 分布式配置中心 - Nacos

下一篇 :21. Sentinel 环境搭建

  • 声明:原文作者:csdn:yuan_404

文章目录

1 . 概述

1.1 集群架构图

  • 集群架构图

  • 对上图的理解

1.2 数据存储

  • 当我们重启 Nacos 后发现,之前配置的信息还都存在。

  • 其实 Nacos 默认使用嵌入式数据库derby)实现数据的存储。

  • 所以,如果启动多个默认配置下的 Nacos 节点,数据存储是存在一致性问题的。

  • 为了解决这个问题,Nacos 采用了集中式存储的方式来支持集群化部署,目前只支持 MySQL 的存储。

  • 配置过后,再启动 Nacos 所有数据都会写入 mysql

2 . Nacos 持久化配置

2.1 说明

  • Nacos默认自带的是嵌入式数据库derby
  • 查看源码 POM 文件

2.2 切换为 MySql

  1. 在本地 Nacos 的目录 —— \\ nacos \\ conf 下找到sql脚本

    nacos-mysql.sql

  2. 使用 MySql 执行该脚本

  3. 在本地 Nacos 的目录 —— \\ nacos \\ conf 下找到 application.properties

  4. 按照官网要求对该文件进行修改

    添加上如下代码(数据库的用户名、密码信息写自己的)

    ########## 修改 Nacos 数据库 ##########
    spring.datasource.platform=mysql
     
    db.num=1
    db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=123456
    
    

    说明 :这里的 MYSQL 必须为 5.7 版本
    如果一定要配置 MYSQL 8.0 可以参考 :https://blog.csdn.net/qq_40885085/article/details/107366137

  5. 重启 Nacos

3 . Linux 版 Nacos+MySQL 生产环境配置

  • 目标 :搭建 1个nginx 、3个Nacos、1个Mysql
  • 因为这里的重点是 Nacos 的使用,所以其他两个就不演示集群了

3.1 Linux 配置 Nacos

  • 官网说明
  1. 去官网下载 Nacos Linux 版本

    Github 下载地址 :https://github.com/alibaba/nacos/releases/tag/1.1.4

  2. 打开 Linux,并将下载的文件传到 /opt 目录下

  3. 解压该文件

    tar -zxvf nacos-server-1.1.4.tar.gz
    
    

  4. 进入解压后的文件夹

3.2 集群配置

1 . Linux 上 Mysql 数据库配置

  1. 利用 Navicat for Mysql 连接 Linux 服务器上的 Mysql

  2. 运行 Nacos 中 nacos-mysql.sql 脚本

2 . application.properties配置

  1. 进入 nacos/conf

  2. 先复制一份备份

    cp application.properties application.properties.bk
    
    

  3. 编辑 application.propertie

    vim application.propertie
    
    
    ########## 修改 Nacos 数据库 ##########
    spring.datasource.platform=mysql
     
    db.num=1
    db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=123456
    
    
  4. 保存退出

3 . nacos的集群配置

  • 这里需要配 3 台 Nacos
  • 修改配置文件 cluster.conf
  1. 进入 nacos/conf

  2. 复制出一,并命名为 :cluster.conf

    cp cluster.conf.example cluster.conf
    
    

  3. 查看本机的 IP

    hostname -i
    
    

  4. 编写 cluster.conf

    前缀 IP 必须为上一步查到的 IP 地址

  5. 保存退出

4 . 编辑Nacos的启动脚本startup.sh

  • 之前在 Windows 中单机版本的 Nacos 直接使用 startup.cmd 就可以启动,并端口号为 8848
  • 但是上一步,我们配置了三台 Nacos,使用 startup.sh 脚本,不知道启动的是哪一台,所以需要配置指明
  1. 进入 nacos/bin

  2. 复制一份 startup.sh

    cp startup.sh startup.sh.bk
    
    

  3. 编辑 startup.sh

    第一处:

    第二处 :

  4. 保存退出

5 . 配置 Nginx 作为负载均衡器

  1. 进入 /usr/local/nginx/conf

  2. 复制 nginx.conf 备份

    cp nginx.conf nginx.conf.bk
    
    

  3. 编辑 nginx.conf

    vim nginx.conf
    
    
    # 配置 Nacos 集群
    upstream cluster
        server 127.0.0.1:3333;
        server 127.0.0.1:4444;
        server 127.0.0.1:5555;
    
    
    
    proxy_pass http://cluster;
    
    

  4. 保存退出

  5. 进入 /usr/local/nginx/sbin/ 目录

    cd /usr/local/nginx/sbin/
    
    

6 . 启动集群

  1. 使用刚刚修改的配置文件启动 Nginx

    ./nginx -c /usr/local/nginx/conf/nginx.conf
    
    
  2. 进入 Nacos 的 bin 目录

  3. 启动 Nacos 集群

    启动 3333、4444、5555

  4. 查看 Nacos 的启动情况

    查看所有 Nacos 进程的具体情况

    ps -ef|grep nacos
    
    

    统计 Nacos 进程的数量

    ps -ef|grep nacos|grep -v grep | wc -l
    
    

  5. 查看 Nginx 的状态,以确定开启

    ps -ef|grep nginx
    
    

  6. 关闭防火墙

    systemctl stop firewalld
    
    
  7. 查看防火墙状态确保关闭

    systemctl status firewalld
    
    

7 . 测试环境是否搭建成功

  1. 网页访问 Nacos (Linux、Windows 都可)

  2. 新建配置

  3. 查看 Linux 数据库

  • 我这里使用 Navicat 连接了 Linux 数据库,直接查看
  • 也可以用命令行

8 . 与项目整合

  • 将微服务 alibaba-nacos-provider-payment-9001 启动、注册进 Nacos 集群
  1. 修改 application.yml

    server-addr: 192.168.142.120:1111 # Linux + Nginx 集群版
    
    

  2. 启动 alibaba-nacos-provider-payment-9001

  3. 查看 Nacos 控制台

    成功
    其他的配置就都是一样的了,就不演示了。

以上是关于SpringCloud-2.0-周阳(20.Nacos 集群和持久化配置)的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud-2.0-周阳(21. Sentinel 环境搭建)

SpringCloud-2.0-周阳(15. 消息驱动 - SpringCloud Stream)

SpringCloud-2.0-周阳(16. 请求链路追踪 - SpringCloud Sleuth)

SpringCloud-2.0-周阳(13. 分布式配置中心 - SpringCloud Config)

SpringCloud-2.0-周阳(23. 熔断降级 - Sentinel)

SpringCloud-2.0-周阳(22. 流量监控 - Sentinel)