【微服务-Nacos】手把手教你Nacos集群部署,不会的来找我!

前面我们介绍了Nacos单机部署和微服务接入Nacos注册中心的操作步骤,但单机部署是分布式应用的大忌,在分布式架构中,任何单点都可能成为系统的瓶颈。因此关于Nacos部署,通常都是采用集群部署来为系统带来高可用性。这里我们来介绍下Nacos的集群部署。

1、Nacos集群部署

(1)环境准备

Nacos因为选举算法的特殊性,要求最少三个节点才能组成一个有效的集群,这里对选举算法的介绍我们后面专门用一个篇幅来介绍。本篇就不再过多赘述,感兴趣的小伙伴可以关注一波,后续持续更新。

以下是Nacos采用Raft选举算法构成集群示意图:

所以,这里我们需要准备三台服务器(我这里就使用虚拟机来演示)。

在虚拟机工具中虚拟出三台centos节点,设置配置为1核2G。ip分别为:192.168.13.1;192.168.13.2;192.168.3.3;在此基础上,需要给每个节点都安装好jdk并设置JAVA_HOME变量。这些设置前面文章都写过了,不了解的可以翻上去看一下。

在3个节点之外,还需要额外部署一台mysql数据库用于保存Nacos的配置信息、权限控制等信息。我这里使用mysql5.7来部署。mysql的ip地址为106.14.221.171;

(2)下载Nacos安装包

前面已经提过了,需要的可以留言。

(3)配置数据库

使用任意工具连接到mysql数据库,创建一个名为:nacos_config的数据库,然后使用mysql客户端执行Nacos文件夹目录下conf文件夹里的nacos-mysql.sql文件,完成建表工作。


我们来看一下各表大致的用处:

  • config_* :所有 config_ 开头的表都是 Nacos 配置中心使用时保存应用配置的表。

  • users:系统用户表,在集群环境下用户信息保存在 users 表中,而非在配置文件中。

  • roles:系统角色表,Nacos 的权限基于 RBAC(基于角色的访问控制)模型设计,此表保存角色数据。

  • permissions: 系统权限表,说明角色与系统使用权限的对应关系。

(4)配置Nacos数据源

依次打开3台Nacos服务器中的配置文件application.properties文件,路径如下:


打开文件后,在文件中找到“count for DB”附近,这里我们可以看到数据源配置的都被注释掉了

我们可以删除掉注释,按下面的示例来配置数据源;

### Count of DB: 数据库总数

db.num=1

### Connect URL of DB: 数据库连接,根据你的实际情况调整

db.url.0=jdbc:mysql://106.14.221.171:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

db.user=root

db.password=root

(5)Nacos集群节点配置

在Nacos安装文件夹下,有个集群示例文件cluster.conf.example


通过cluster.conf.example创建集群节点列表。

  • 首先利用复制命令创建cluster.conf文件。
cp cluster.conf.example cluster.conf

  • 打开cluster.conf文件,添加所有的Nacos集群节点IP及端口。
192.168.3.1:8848
192.168.3.2:8848
192.168.3.3:8848

Nacos通过cluster.conf了解集群节点的分布情况

(6)启动Nacos服务器

分别启动三个节点的Nacos服务。

sh /www/server/nacos/bin/startup.sh

当三个节点的Nacos服务都启动后,可以打开浏览器查看集群列表。


UP代表节点已就绪,DOWN代表节点已离线。目前所有节点都是就绪的。

(7)接入微服务

在我们开发好的微服务应用中,在application.properties文件中配置集群的任意节点都可以完成接入工作,Nacos内置的数据同步机制会保证各节点数据一致性。

# 应用名称,默认也是在微服务中注册的微服务 ID

spring.application.name=sample-service

# 配置 192.168.3.1/2/3 都可以接入 Nacos

spring.cloud.nacos.discovery.server-addr=192.168.163.131:8848,192.168.163.132:8848,192.168.163.133:8848

#连接 Nacos 服务器使用的用户名、密码,默认为 nacos

spring.cloud.nacos.discovery.username=nacos

spring.cloud.nacos.discvery.password=nacos

#微服务提供 Web 服务的端口号

server.port=8080

启动微服务后,我们可以看到Nacos管理页面上能看到注册上去的微服务了:


到这里,Nacos集群的主体配置工作就已经完成了。下篇文章我们再来聊一下集群的内部运行机制。

欢迎关注公众号:服务端技术精选。欢迎点赞、关注、转发

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
xxl-job-nacos 是一个基于微服务的调度系统。它的设计理念是通过将大型应用拆分成多个微服务,每个微服务都有一个独立的调度器,用于管理该微服务的任务调度和执行。xxl-job-nacos 使用 Nacos 作为注册中心,通过 Nacos 实现微服务的注册和发现。 通过将任务调度设置为微服务的一部分,xxl-job-nacos 可以实现任务的集中管理和分布式部署。它提供了一套友好的调度管理界面,用于配置和监控任务的运行情况。用户可以通过该界面添加、编辑和删除任务,指定任务的执行时间和频率。同时,xxl-job-nacos 支持任务的动态调度,可以实时修改任务的执行策略和参数,以适应不同的业务需求。 通过使用 Nacos 作为注册中心,xxl-job-nacos 实现了任务的注册和发现。当一个新任务被添加到调度系统中时,它会通过 Nacos 将任务的信息注册到注册中心,并通知相应的微服务微服务通过订阅注册中心的信息,获知新任务的相关信息,并根据任务的调度策略和配置进行任务的执行。当任务执行完成后,微服务会将执行结果反馈给 xxl-job-nacos,并更新任务状态和日志。 总的来说,xxl-job-nacos 是一个基于微服务的调度系统,它通过将任务调度设置为微服务的一部分,实现了任务的集中管理和分布式部署。同时,xxl-job-nacos 使用 Nacos 作为注册中心,实现了任务的注册和发现,以实时更新任务的信息和执行结果。通过这样的设计,xxl-job-nacos 可以提供强大的任务调度能力,适用于大型应用的任务调度和分布式执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱娃哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值