SpringCloudAlibaba Nacos服务配置持久化、Nacos集群部署配置

版本:NACOS 1.2.0

1.Nacos服务配置持久化配置

在使用Nacos对某个服务进行全局配置时会在Nacos客户端配置列表来为服务添加配置,而这些配置即使你重启Nacos也会一直存在。
在这里插入图片描述
因为每个Nacos服务器都自带了一个小型的嵌入式数据库derby。

虽然这样解决了服务配置持久化的问题,但是每个Nacos都自带一个derby,对于启动多个默认配置下的Nacos节点(Nacos集群),数据存储存在一致性问题。为了解决这个问题,Nacos采用集中化存储的方式支持集群部署,目前只支持MySQL存储

所以我们需要将Nacos的数据存储由derby替换为MySQL(如果是集群部署,MySQL在 5.6.5+)

①在 /nacos/conf 目录下找到 nacos-mysql.sql 脚本

  1. 创建数据库:nacos_config
    CREATE DATABASE nacos_config;
    USE nacos_config;
    
  2. 执行 nacos-mysql.sql 脚本内容
    sql语句源文件

②在 /nacos/conf 目录下找到 application.properties

在文件下方添加下面配置:

#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://1.1.1.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=password

完成上面两步重启Nacos就可以将数据库从derby切换为MySQL。

2.Nacos集群部署配置

上一步是Nacos集群部署的必要操作,将Nacos改为集中化的存储方式,接下来我们开始搭建Nacos集群。

Nacos集群部署说明 - 官网
官方推荐使用Linux系统,并且3个或3个以上Nacos节点才能构成集群。

下面是Nacos集群部署架构图:
在这里插入图片描述
这里的VIP - 虚拟IP可以简单理解为Nginx

①配置 cluster.conf 文件

在 /nacos/conf 目录下的cluster.conf 中添加Nacos节点的ip+port
在这里插入图片描述

注意:ip并不是127.0.0.1,而是通过 hostname -i 获取到的网卡ip,可以在 /etc/hosts 进行修改。
在这里我是将原来的 127.0.1.1 改为了 192.168.1.138
在这里插入图片描述

②修改 startup.sh 启动脚本

原生的启动脚本并没有对指定端口进行启动的配置,只是默认以8848进行启动。在Nacos集群部署中,我们需要根据不同的端口号启动不同的Nacos节点,所以我们需要修改 /nacos/bin 目录下的 startup.sh 启动脚本。

在 startup.sh 脚本中添加下面两处代码:
在这里插入图片描述
在这里插入图片描述
这样我们就可以使用 bash startup.sh -p xxxx 来指定端口号启动Nacos节点。

③Nginx 负载均衡器

在部署架构图中通过VIP,来对Nacos集群进行反向代理、负载均衡,我们通过Nginx来进行配置。

在 /nginx/conf 目录下的 nginx.conf 文件中进行配置。

  1. 添加Nacos集群的负载均衡列表
    在这里插入图片描述
  2. 定义监听ip和port
    在这里插入图片描述
  3. 定义转发地址 在这里插入图片描述

④测试

  1. 启动nginx服务器 在这里插入图片描述
  2. 分别启动端口号为3333\4444\5555的Nacos节点
    在这里插入图片描述
  3. 访问 http://localhost:8848/nacos/#/clusterManagement 节点列表
    在这里插入图片描述

Nacos集群基本部署完成。

发布了120 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43327091/article/details/105206403