【微服务-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集群的主体配置工作就已经完成了。下篇文章我们再来聊一下集群的内部运行机制。

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

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我爱娃哈哈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值