天天看点

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)

说明: 开源时,推荐用户把所有服务列表放到一个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.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)
Nacos 集群搭建和持久化配置(Linux)

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

 进入 nacos 安装目录 conf 文件下,

application.properties

配置文件添加 mysql 支持。

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

添加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)

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)

  配置完成,进入 sbin 目录,使用

./nginx -c /usr/local/env/nginx-1.16.0/conf/nginx.conf

启动 nginx,使用

-c

加载指定配置文件,路径为 nginx.conf 所在路径。启动完成,通过命令:

ps aux | grep nginx

查看 nginx 是否启动。如图已经启动成功。

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

到此为止,Nginx 配置完成。

3.6.启动nacos集群

  进入 nacos 安装所在的 bin 目录,使用

sh startup.sh

启动 集群中的 3台 nacos。可以通过nacos安装路劲 logs目录,使用

tail -f nacos.log

查看日志。

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

启动成功提示:

  

如果虚拟机资源紧张,此处会一直很长时间在 nacos is starting... 状态,一定注意自己服务器的配置。

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

3.7.进入Nacos控制台

  已经配置 Nginx 负载均衡,所以我们使用 Nginx 8087 端口进入Nacos 控制台:

http://192.168.204.202:8087/nacos/

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

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

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

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)

  延续上一篇博客示例:Spring Cloud Alibaba Nacos 用于服务注册和配置中心,使用 Nacos 集群作为注册中心。开始服务调用,可以正常实现负载均衡,如下图所示:

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

Nacos集群搭建、持久化配置介绍到此为止。

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

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

继续阅读