SpringCloud-Nacos集群搭建

本文详细介绍了如何在SpringCloud环境中搭建Nacos集群,为读者提供了一份清晰而详尽的指南。通过逐步演示每个关键步骤,包括安装、配置以及Nginx的负载均衡设置,读者能够轻松理解并操作整个搭建过程。 

一、Nacos集群示意图

Nacos(Naming 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_8844、Nacos_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对Nacos反向代理

1、下载解压Nginx

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

nginx 001 1024x630 - Windows安装Nginx


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 002 1024x656 - Windows安装Nginx

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


3、启动Nginx

接下来,我们启动Nginx,验证服务是否成功开启.。双击根目录下的nginx.exe,双击后一个黑色的弹窗一闪而过就消失了,启动就完成了。

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


4、配置对Nacos的反向代理

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

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控制台新建配置

1、Nacos控制台新建配置

我们访问 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集群不仅仅是服务注册中心,还在微服务架构中发挥着关键的角色,支持多种场景下的服务治理和协调。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/391469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

17.3.1.6 自定义处理

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 模拟某款图像处理软件的处理,它只留下红色、绿色或者蓝色这样的单一颜色。 首先按照颜色划分了6个色系,分别…

2.16学习总结

1.邮递员送信(dijkstra 不只是从起到到目标点,还要走回去) 2.炸铁路(并查集) 3.统计方形(数据加强版)(排列组合) 4.滑雪(记忆化) 5.小车问题(数学问题&#x…

二叉树前序中序后序遍历(非递归)

大家好,又和大家见面啦!今天我们一起去看一下二叉树的前序中序后序的遍历,相信这个对大家来说是信手拈来,但是,今天我们并不是使用常见的递归方式来解题,我们采用迭代方式解答。我们先看第一道前序遍历 1…

基于Robei EDA实现FIFO(非IP核)及FIFO求和

一、FIFO简介 FIFO( First in First out) 使用在需要产生数据接口的部分,用来存储、缓冲在两个异步 时钟之间的数据传输。在异步电路中,由于时钟之间周期和相位完全独立,因此数据丢失概 率不为零。使用 FIFO 可以在两个…

【ChatIE】论文解读:Zero-Shot Information Extraction via Chatting with ChatGPT

文章目录 介绍ChatIEEntity-Relation Triple Extration (RE)Named Entity Recognition (NER)Event Extraction (EE) 实验结果结论 论文:Zero-Shot Information Extraction via Chatting with ChatGPT 作者:Xiang Wei, Xingyu Cui, Ning Cheng, Xiaobin W…

【电源】POE系统供电原理(二)

转载本博客文章,请注明出处 ​ 上一篇文章中,有提到POE系统工作原理及动态检测机制,下面我们继续介绍受电端PD技术及原理。POE供电系统包含PSE、PD及互联接口部分组成,如下图所示。 图1 POE供电系统 PSE控制器的主要作用&#xff…

无人机基本知识,无人机遥控器功能详解与调试方法

无人机作为一种新兴的飞行器,近年来在各个领域得到了广泛的应用。而无人机遥控器则是控制无人机飞行的重要工具。 无人机遥控器是一种无线设备,通过它来远程控制无人机的飞行。遥控器通常包括一个或多个摇杆,用于控制无人机的各种动作&#x…

FL Studio 21中文破解激活版2024免费下载安装图文教程

FL Studio 21.2.1.3859中文破解激活版是我见过更新迭代最快的宿主软件,没有之一。FL Studio12、FL Studio20、FL Studio21等等。有时甚至我刚刚下载好了最新版本,熟悉了新版本一些好用的操作,Fl Studio就又推出了更新的版本,而且F…

【STM32 CubeMX】串口编程DMA+IDLE中断

文章目录 前言一、为什么要引入IDLE中断二、IDLE中断使用方式2.1 接收的三种情况2.2 函数的使用查询方式中断方式DMA方式分析一个问题 总结 前言 在嵌入式系统中,串口通信是一项关键的任务,而使用DMA(直接内存访问)结合IDLE中断进…

基于springboot特产销售平台源码和论文

“互联网”的战略实施后,很多行业的信息化水平都有了很大的提升。但是目前很多藏区特产销售信息仍是通过人工管理的方式进行,需要在各个岗位投入大量的人力进行很多重复性工作,使得对人力物力造成诸多浪费,工作效率不高等情况&…

【初始RabbitMQ】工作队列的实现

工作队列 工作队列(又称为任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。 相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进 程将弹出任务并最终执行作业。当有多个工作线程…

电脑屏幕录制工具 Top10 榜单,免费无水印方法集

随着媒体行业的突飞猛进,不同服务之间对有效屏幕录制的竞争日益激烈。这导致市场上出现了质量参差不齐的屏幕录像机。特别是有些录屏器会自动给你录制的视频加上水印,给需要在公共场合使用的人留下不专业的印象。除此之外,它们甚至不能保护您…

【Google Bard】免费生成图像——功能和使用方法详解

Google Bard 关于Bard 图片生成功能打开Bard通过Bard来生成图片Bard Vs Bing Vs Dall-EBard的生成结果Bing的生成结果Dall-E 的生成结果 总结 关于Bard 图片生成功能 Google在2月1日(当地时间)宣布,其对话型AI“Bard”新增了图像生成功能。 …

Mysql——update更新数据的方式

注:文章参考: MySQL 更新数据 不同条件(批量)更新不同值_update批量更新同一列不同值-CSDN博客文章浏览阅读2w次,点赞20次,收藏70次。一般在更新时会遇到以下场景:1.全部更新;2.根据条件更新字段中的某部分…

MATLAB离线文档安装

MATLAB离线文档安装 来源于最全matlab安装离线文档教程只是对内容进行了精简,同时更方便查找 一、下载离线文档 我上传的2023b离线文档 提供本体属于违规行为,本体下载链接已删除 为方便已安装好软件的朋友想安装离线帮助文档,由于官网下载…

模型 IPO(输入、处理、输出)学习模型

系列文章 分享 模型,了解更多👉 模型_总纲目录。重在提升认知。信息转化与传递。 1 模型 IPO(输入、处理、输出)学习模型的应用 1.1 项目管理知识体系 PMBOK 中的IPO应用 在项目管理领域,PMBOK(Project Management Body of Know…

究极小白如何自己搭建一个自动发卡网站-独角数卡

本人从来没接触过建站,我之前都是在TB上花90叫别人给我搭建的网站,前几天这个TB店倒闭跑路了,而我的发卡网也打不开了,没办法,逼上梁山,自己捣鼓出来了!下面是2023/4/2自己建好的! …

STM32F1 - 系统时钟SysTick

SysTick 1> SysTick硬件框图2> SysTick的时钟源3> 1ms定时_中断方式4> 思考:无符号数 0 - 255 ?相关资料 1> SysTick硬件框图 SysTick属于Cotex-M3,是CPU外设; SysTick: 位宽24bit, 递减计数,自动重装…

《Go 简易速速上手小册》第2章:控制结构与函数(2024 最新版)

文章目录 2.1 条件语句:决策的艺术2.1.1 基础知识讲解2.1.2 重点案例:用户角色权限判断实现用户角色权限判断扩展功能实现代码功能扩展:添加或删除用户 2.1.3 拓展案例 1:成绩等级判断实现成绩等级判断功能实现代码扩展功能&#…

【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床

准备工作: 首先电脑得提前完成安装如下: 1. nodejs环境(node ,npm):【安装指南】nodejs下载、安装与配置详细教程 2. Picgo:【安装指南】图床神器之Picgo下载、安装与配置详细教程 3. Typora:【安装指南】markdown神器之Typora下载、安装与无限使用详细教…