SpringCloud-Nacos集群搭建

举报
Damon小智 发表于 2024/02/18 01:41:56 2024/02/18
【摘要】 本文详细介绍了如何在SpringCloud环境中搭建Nacos集群。通过清晰的步骤和详尽的说明,帮助读者在SpringCloud中成功搭建Nacos集群。文章详细介绍了安装和配置的每个步骤,确保了高可用性和可伸缩性。通过清晰的说明和示例,读者能够轻松理解复杂的集群搭建过程,实现微服务体系的稳固运行。这篇文章是搭建Nacos集群的理想参考,为构建可靠的分布式系统提供了关键信息。

一、Nacos集群示意图

NacosNaming and Configuration Service)是一个用于服务发现、动态配置管理以及可视化服务管理的开源平台。Nacos支持构建弹性的、动态的、易于维护的微服务架构,并为大规模微服务体系的管理提供了完整的解决方案。在Nacos的集群视图中,Nacos可以通过横向扩展的方式构建多个节点,形成一个高可用的集群,以确保系统的稳定性和可靠性。

 Nacos集群特点:

特点

特点详述

节点同步

集群中的各个节点能够相互同步数据,确保配置信息和服务实例的一致性。

负载均衡

Nacos集群可以通过负载均衡机制,将服务请求合理分发到各个节点,提高系统的整体性能和吞吐量。

高可用性

Nacos集群通过多节点的部署,实现高可用性,即使某个节点发生故障,集群仍能保持正常运行。

水平扩展

集群中的节点可以随着需求的增加而动态扩展,实现系统的横向扩展,以适应不断增长的服务规模。

故障转移

集群中的节点能够感知其他节点的状态,当某个节点发生故障时,其他节点可以接管其工作,确保系统的连续性。

通过Nacos的集群视图,可以更好地管理和维护微服务架构,提供了一个稳定、高效、可靠的服务治理平台。


二、Nacos集群搭建

1、安装Nacos

首先,我们需要从 Nacos 的官方网站下载发布版本。下载地址: Releases · alibaba/nacos · GitHub

选择合适的版本并下载,解压缩得到 Nacos 的安装包。

在解压后的 Nacos 目录中,找到 bin 文件夹。

用写字板编辑 startup.cmd,将 set MODE= “cluster” 修改为:

set MODE="standalone"

这将在启动 Nacos Server 时,默认使用 standalone 模式运行。

修改完成后,切换 cmd bin 目录下启动 Nacos Server

C:\Users\Damon.Liu>d:
D:\>cd D:\Tools\Nacos\bin
D:\Tools\Nacos\bin>startup.cmd -m standalone

这里提醒我需要配一个 java8以上 JAVA_HOME 环境变量。

简单配一下:

再次尝试启动 Nacos,这次成功了!


2、复制客户端

复制两份Nacos的客户端,用端口号命名做区分。

注意端口号需要最少间隔一位,原因是 Nacos 2.0 之后,启动 Nacos 时会占用 +1000/1001 两个端口,如果相邻,会导致启动了一个 Nacos 之后,启动不了相同端口的另一个 Nacos

官方文档说明如下:

所以,我们命名为 Nacos_8844Nacos_8846,间隔两位,同时和默认的 8848 端口的 Nacos 区分开来,方便我们辨认。

下面,对三个客户端分别进行修改。


3、创建Nacos数据库

MySQL 创建名为 Nacos 的数据库。

conf 文件夹下的 mysql-schema.sql 导入到这个库里。


4、修改每个客户端application.properties

修改端口号

首先,修改三个客户端为不同的端口号。

端口在 conf 目录下的 application.properties 下修改:


修改数据库连接信息 

放开数据库的三处注释。

这里有个数据库连接数,我们就一个数据库所以填1

下面的 jdbc 连接信息,改为我们数据库的账号密码,连接的就是我们刚刚创建的 Nacos 数据库。


5、修改每个客户端集群配置

再对每个客户端 conf 目录下的 cluster.conf.example 文件复制一份,改名为 cluster.conf

修改复制出来的 cluster.conf 文件,把三个 nacos 服务端地址都添加到里面:

192.168.0.107:8844
192.168.0.107:8846
192.168.0.107:8848

启动三个nacos服务端,如果之前是单机模式运行的,修改过启动器的代码,则需要改回来。

比如我的 startup.cmd 里之前指定了默认启动方式,这里需要修改这一行为:

set MODE= "cluster"


6、逐一启动Nacos服务

修改之后,我们双击 Stratup.cmd 启动 Nacos

启动成功之后,我们可以访问已经启动的 Nacos 控制台查看:localhost:8848/nacos


三、Nginx反向代理

1、下载安装Nginx

访问 Nginx 官网 (nginx.org/en/download.html)  下载最新的稳定版本。


2、修改Nginx默认端口

解压Nginx压缩包,修改默认端口。

Nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,根据端口占用情况,我们可以修改位其他端口,这里我修改位40

修改之前我们可以输入cmd指令,查询端口占用状态:

#查看80端口是否被占用的命令是:
netstat-ano | findstr 0.0.0.0:80
netstat-ano | findstr "80"

如果被占用了,我们可以修改 Nginx\conf\nginx.conf 文件里的监听端口号,来指定默认端口。

比如,我这里换为40端口。

但建议大家还是给 Nginx 80端口,默认端口最终我还是用的默认80端口。 


3、启动Nginx

启动Nginx,验证服务是否成功开启。

双击根目录下的nginx.exe,双击后一个黑色的弹窗一闪而过就消失了,启动就完成了。

然后我们访问80端口,看到Nginx服务已经成功运行了。


4NginxNacos负载均衡的配置

我们这里要配置 Nginx\conf\nginx.conf 文件。
listen:监听的端口;
(监听端口需要避免占用,尤其是 win-server,需要关闭IIS80端口的默认项目)
server_name:监听的域名(填写 localhost 即为公网IP);
location proxy_pass:设置转发的目标地址;
默认端口我还是用的默认80端口。

upstream nacos-cluster {
    server 127.0.0.1:8844;
	server 127.0.0.1:8846;
	server 127.0.0.1:8848;
}
 
server {
    listen       80;
    server_name  localhost;
 
    location /nacos {
        proxy_pass http://nacos-cluster;
    }
}

这里给出的例子的意思是:当收到 /naocs 请求时,自动转发请求到 Nacos 集群,通过负载均衡指定具体哪个端口的 Nacos 响应。

修改完配置后,我们要停止之前的 Nginx 服务,重启后配置才能刷新。


5、浏览器访问测试

访问 localhost/nacos,如果显示是 Nacos 的控制台页面,则说明配置成功。


四、Nacos控制台新建配置

1Nacos控制台新建配置

我们访问 Nacos 的控制台页面,因为我们刚刚用 Nginx 转达到集群,所以 Nacos 控制台地址变为 localhost/nacos,我们点击新建配置。

配置起名为:test-service.yaml,类型选为 YAML 类型,配置内容我们写一个时间格式:

pattern:
    dateformat: yyyy-MM-dd HH:mm:ss


2、查看配置是否存入数据库

我们打开我们刚刚创建的 Nacos 数据库,查看 config-info 表:

可以看到配置已经写入表内了。

至此,我们的Nacos集群搭建成功!


五、Nacos集群的应用场景

Nacos集群在微服务架构中具有广泛的应用场景,其中一些关键的应用场景包括:

场景

场景下功能描述

服务注册
服务发现

Nacos集群作为注册中心,可以用于服务的注册与发现。微服务在启动时将自身注册到Nacos集群,其他微服务通过Nacos发现和调用这些服务。

动态配置管理

Nacos提供了分布式配置管理功能,允许在运行时动态调整应用程序的配置。Nacos集群可以用于集中式管理配置信息,实现配置的动态更新和热加载。

健康检查
故障恢复

Nacos集群通过定期的健康检查,能够检测服务的状态并及时发现故障节点。当某个微服务发生故障时,Nacos能够自动剔除不可用的节点,确保系统的高可用性。

动态路由

基于Nacos集群,可以实现动态路由策略,根据服务的状态和负载情况,动态调整请求的路由,实现流量的均衡和优化。

分布式锁
与协调

Nacos提供了分布式锁和协调的功能,可以应用于分布式系统中的同步、协作和资源竞争场景,确保多个微服务之间的有序执行。

事件驱动架构

Nacos支持事件监听机制,可以通过订阅Nacos集群中的事件,实现微服务架构中的事件驱动,提高系统的解耦性和可维护性。

综上所述,Nacos集群不仅仅是服务注册中心,还在微服务架构中发挥着关键的角色,支持多种场景下的服务治理和协调。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。