Nacos 集群搭建和持久化配置(Linux)

转载声明 : 该文章出处为 扛麻袋的少年

本文目录:

    • 写在开头
    • 1.Nacos集群架构图
        • Ⅰ.Nacos集群官方架构图
        • Ⅱ.Nacos集群真实架构图
    • 2.Nacos数据库支持
    • 3.Nacos 集群部署搭建
        • 3.0 节点部署情况
        • 3.1 derby 切换 mysql 数据库配置
            • Ⅰ. 执行nacos-mysql.sql脚本
            • Ⅱ. 修改application.properties,添加mysql支持
        • 3.2 cluster.conf 配置
        • 3.3 修改 nacos 启动堆栈大小
        • 3.4 使用scp命令,进行nacos配置分发
        • 3.5. Nginx负载均衡配置
        • 3.6.启动nacos集群
        • 3.7.进入Nacos控制台
        • 3.8.查看集群节点启动情况
        • 3.9 Nacos集群环境,项目中nacos地址需写 Nginx 地址


写在开头

  接上一篇文章:Spring Cloud Alibaba Nacos 用于服务注册和配置中心。掌握了 Nacos 用于 服务注册和配置中心。为了满足高可用,单节点 Nacos 服务肯定是不够的,接下来就开始 Nacos 集群环境搭建

nacos 安装目录:/usr/local/env/

1.Nacos集群架构图

Ⅰ.Nacos集群官方架构图

Nacos 集群搭建和持久化配置(Linux)_第1张图片
说明: 开源时,推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面

  1. http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。
  2. http://VIP:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。
  3. http://nacos.com:port/openAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式。

解惑:VIP??

  此处的 VIP 指代的是 Virtual IP(虚拟IP)的意思,官方文档说明不太清楚。通常情况下指代的是 Nginx。

Ⅱ.Nacos集群真实架构图

Nacos 集群搭建和持久化配置(Linux)_第2张图片

2.Nacos数据库支持

  在上篇博客:Spring Cloud Alibaba Nacos 用于服务注册和配置中心,手动将 Nacos 服务关闭再启动。存储在 Nacos 中的配置信息并不会丢失。这是因为 Nacos 默认内置 DerBy 数据库。 嵌入式数据库,请参考:nacos pom.xml 有引入 derby 依赖

  在 Nacos 0.7 版本之前,在单机模式时 nacos 使用嵌入式数据库(derby)实现数据的存储,不方便观察数据存储的基本情况。0.7 版本增加了支持 mysql 数据源能力。 具体的操作步骤:

  1. 安装数据库,版本要求:5.6.5+
  2. 初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
  3. 修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
  4. 再启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql

3.Nacos 集群部署搭建

Nacos支持三种部署模式

  • 单机模式 - 用于测试和单机试用。
  • 集群模式 - 用于生产环境,确保高可用。
  • 多集群模式 - 用于多数据中心场景。

  此处附:Nacos集群模式部署官方文档

3.0 节点部署情况

服务器IP 部署服务 端口 备注
192.168.204.202 MySQL 5.7.28 3306 测试,使用单机 MySQL,高可用参考:MySQL 5.7.28 主从复制实现
192.168.204.202 Nginx 1.16.0 8807 测试,使用单机 Nginx,Nginx集群搭建请自行了解(Nginx默认端口为80,此处负载均衡使用8087端口)
192.168.204.202 nacos 8848 集群节点01:nacos 01
192.168.204.203 nacos 8848 集群节点02:nacos 02
192.168.204.204 nacos 8848 集群节点03:nacos 03

提示: 三台机器配置相同,此处对一台进行配置。使用命令 scp 发送到其他两台机器即可,此处以 192.168.204.202 为例说明。

3.1 derby 切换 mysql 数据库配置

Ⅰ. 执行nacos-mysql.sql脚本

  进入 nacos 安装目录 conf 文件下,找到 nacos-mysql.sql 脚本

  创建 nacos_config 数据库,并执行 nacos-mysql.sql 脚本。
Nacos 集群搭建和持久化配置(Linux)_第3张图片
Nacos 集群搭建和持久化配置(Linux)_第4张图片

Ⅱ. 修改application.properties,添加mysql支持

 进入 nacos 安装目录 conf 文件下,application.properties 配置文件添加 mysql 支持。
在这里插入图片描述

添加mysql支持

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.204.202:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

 
   
   
   
   

3.2 cluster.conf 配置

  进入 conf 目录,使用命令:cp cluster.conf.example cluster.conf 拷贝一份,重命名为 cluster.conf,在 cluster.conf 中进行配置,说明哪几台机器组成集群(填写的是 nacos 集群3个节点所在 IP:端口号,不要写 127.0.0.1,必须是Linux的真实IP)

192.168.204.202:8848
192.168.204.203:8848
192.168.204.204:8848

3.3 修改 nacos 启动堆栈大小

  nacos 启动时,默认 -Xms2g -Xmx2g。如果你是在多台虚拟机测试,配置紧张,这一步就比较重要了。如果服务器配置很优秀,这一步可以绕过。

配置紧张会导致以下情况的出现:

  1. nacos 服务启动很慢很慢的情况;
  2. nacos 服务注册中心,有3个提供服务,你可能只能看到 2个、1个、0个服务节点,还会来回跳动的问题。
  3. 反正还是会出现一些意想不到的问题,视情况而配置。

Xms 是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢。
Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。

  我们进入 bin 目录,使用 vim startup.sh 对其进行修改,将其按照配置修改到指定大小即可。(好像可以通过启动时添加 Xms 参数方式修改,我忘了怎么搞了,此处就直接修改 .sh 启动脚本了)
Nacos 集群搭建和持久化配置(Linux)_第5张图片

3.4 使用scp命令,进行nacos配置分发

  192.168.204.202 一台 nacos 集群环境配置完成,使用 scp 命令,将 nacos 目录分发到 203/204两台机器。scp 命令的使用如下:(scp命令使用介绍,请参考:Linux命令—scp),不使用 scp 命令,你也可以 rz、sz 以打包的方式进行上传。

scp -r /usr/local/env/nacos [email protected]:/usr/local/env/
scp -r /usr/local/env/nacos [email protected]:/usr/local/env/

3.5. Nginx负载均衡配置

  在此处,已经默认 Nginx 服务已经OK,Nginx 服务跑在 192.168.204.202。如需 Nginx 的搭建过程,请自行。

  进入nginx/conf 目录,对 nginx.conf添加 nacos 集群配置,配置如下图所示:
Nacos 集群搭建和持久化配置(Linux)_第6张图片
  配置完成,进入 sbin 目录,使用 ./nginx -c /usr/local/env/nginx-1.16.0/conf/nginx.conf 启动 nginx,使用 -c 加载指定配置文件,路径为 nginx.conf 所在路径。启动完成,通过命令:ps aux | grep nginx 查看 nginx 是否启动。如图已经启动成功。
在这里插入图片描述
到此为止,Nginx 配置完成。

3.6.启动nacos集群

  进入 nacos 安装所在的 bin 目录,使用 sh startup.sh 启动 集群中的 3台 nacos。可以通过nacos安装路劲 logs目录,使用 tail -f nacos.log 查看日志。
在这里插入图片描述
启动成功提示:

  如果虚拟机资源紧张,此处会一直很长时间在 nacos is starting... 状态,一定注意自己服务器的配置。
Nacos 集群搭建和持久化配置(Linux)_第7张图片

3.7.进入Nacos控制台

  已经配置 Nginx 负载均衡,所以我们使用 Nginx 8087 端口进入Nacos 控制台:http://192.168.204.202:8087/nacos/
Nacos 集群搭建和持久化配置(Linux)_第8张图片

3.8.查看集群节点启动情况

Nacos 集群搭建和持久化配置(Linux)_第9张图片

3.9 Nacos集群环境,项目中nacos地址需写 Nginx 地址

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.204.202:8087 #配置Nacos地址(集群使用Nginx,此处需配置Nginx地址)

 
   
   
   
   

  此处,1台提供服务(集群环境,共3台,9001、9002、9003 端口),1台用于消费(83端口)。启动项目,可以看到服务已经成功注册到 Nacos。
Nacos 集群搭建和持久化配置(Linux)_第10张图片
  延续上一篇博客示例:Spring Cloud Alibaba Nacos 用于服务注册和配置中心,使用 Nacos 集群作为注册中心。开始服务调用,可以正常实现负载均衡,如下图所示:
Nacos 集群搭建和持久化配置(Linux)_第11张图片
Nacos集群搭建、持久化配置介绍到此为止。

步骤很详细,本文不提供代码下载。谢谢Thanks♪(・ω・)ノ

下一篇:Spring Cloud Alibaba Sentinel 介绍、基本使用

你可能感兴趣的:(SpringCloud)