SpringCloud-Nacos集群搭建

这篇具有很好参考价值的文章主要介绍了SpringCloud-Nacos集群搭建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一、Nacos集群示意图

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

 Nacos集群特点:

特点 特点详述
节点同步 集群中的各个节点能够相互同步数据,确保配置信息和服务实例的一致性。
负载均衡 Nacos集群可以通过负载均衡机制,将服务请求合理分发到各个节点,提高系统的整体性能和吞吐量。
高可用性 Nacos集群通过多节点的部署,实现高可用性,即使某个节点发生故障,集群仍能保持正常运行。
水平扩展 集群中的节点可以随着需求的增加而动态扩展,实现系统的横向扩展,以适应不断增长的服务规模。
故障转移 集群中的节点能够感知其他节点的状态,当某个节点发生故障时,其他节点可以接管其工作,确保系统的连续性。

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


二、Nacos集群搭建

1、安装Nacos

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

选择合适的版本并下载,解压缩得到 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 环境变量。

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

简单配一下:

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx


2、复制客户端

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

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

官方文档说明如下:

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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


3、创建Nacos数据库

MySQL 创建名为 Nacos 的数据库。

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx


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

① 修改端口号

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

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx


② 修改数据库连接信息 

放开数据库的三处注释。

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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

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


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

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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

192.168.0.107:8844
192.168.0.107:8846
192.168.0.107:8848

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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

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

set MODE= "cluster"

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx


6、逐一启动Nacos服务

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx


三、Nginx对Nacos反向代理

1、下载解压Nginx

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,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端口。

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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


3、启动Nginx

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

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,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 响应。

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx​ 


5、浏览器访问测试

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx


四、Nacos控制台新建配置

1、Nacos控制台新建配置

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

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

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx


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

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

SpringCloud-Nacos集群搭建,Java,spring cloud,java,nacos,后端,分布式,微服务,nginx

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

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


五、Nacos集群的应用场景

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

场景 场景下功能描述
服务注册
服务发现
Nacos集群作为注册中心,可以用于服务的注册与发现。微服务在启动时将自身注册到Nacos集群,其他微服务通过Nacos发现和调用这些服务。
动态配置管理 Nacos提供了分布式配置管理功能,允许在运行时动态调整应用程序的配置。Nacos集群可以用于集中式管理配置信息,实现配置的动态更新和热加载。
健康检查
故障恢复
Nacos集群通过定期的健康检查,能够检测服务的状态并及时发现故障节点。当某个微服务发生故障时,Nacos能够自动剔除不可用的节点,确保系统的高可用性。
动态路由 基于Nacos集群,可以实现动态路由策略,根据服务的状态和负载情况,动态调整请求的路由,实现流量的均衡和优化。
分布式锁
与协调
Nacos提供了分布式锁和协调的功能,可以应用于分布式系统中的同步、协作和资源竞争场景,确保多个微服务之间的有序执行。
事件驱动架构 Nacos支持事件监听机制,可以通过订阅Nacos集群中的事件,实现微服务架构中的事件驱动,提高系统的解耦性和可维护性。

综上所述,Nacos集群不仅仅是服务注册中心,还在微服务架构中发挥着关键的角色,支持多种场景下的服务治理和协调。文章来源地址https://www.toymoban.com/news/detail-829928.html

到了这里,关于SpringCloud-Nacos集群搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微服务】SpringCloud-Nacos注册中心

    🍁 博客主页: 👉@不会压弯的小飞侠 ✨ 欢迎关注: 👉 点赞 👍 收藏 ⭐ 留言 ✒ ✨ 系列专栏: 👉SpringCloud专栏 ✨ 知足上进,不负野心。 🔥 欢迎大佬指正,一起学习!一起加油! Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现

    2024年02月02日
    浏览(35)
  • 【springcloud 微服务】Spring Cloud Alibaba Nacos使用详解

    目录 一、前言 二、nacos介绍 2.1  什么是 Nacos 2.2 nacos 核心能力 2.2.1 服务发现和服务健康监测

    2024年01月22日
    浏览(42)
  • 【SpringCloud Alibaba -- Nacos】Linux 搭建 Nacos 集群

    centos安装docker https://docs.docker.com/engine/install/centos/ MySql8 mysql数据库配置 数据库脚本 nacos/conf/nacos-mysql.sql Nacos2 application.properties 修改为mysql cluster.conf 配置你三台nacos的地址 修改startup.sh ( nacos1版本同一台机器修改启动脚本,nacos2应该不用了 ) 复制俩份nacos,修改其对应的port N

    2024年02月05日
    浏览(52)
  • 【SpringCloud】三、Nacos服务注册+配置管理+集群搭建

    官网:https://nacos.io/zh-cn/ 下载 解压 启动 启动成功 登录 在cloud-demo 父工程中添加 spring-cloud-alilbaba的管理依赖: 子模块下添加nacos的客户端依赖(此时user、order中的eureka可以注释掉了) 在order和user模块的application.yml文件中,注释eureka地址,添加nacos的地址 重启order服务,查看

    2024年02月06日
    浏览(44)
  • 从0到1搭建spring cloud alibaba +springboot+nacos+dubbo微服务

      由以上版本对应关系:         springboot版本:2.3.2.RELEASE         spring cloud 版本选择:Hoxton.SR9         spring cloud alibaba版本选择:2.2.6.RELEASE 父工程的父工程:()  版本依赖关系:            其他业务模块依赖: 使用nacos做配置中心和注册中心+dubbo做RPC调用 配置文

    2024年02月11日
    浏览(29)
  • 【Spring Clound】Nacos高可用集群搭建与使用

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、

    2024年02月12日
    浏览(34)
  • spring cloud Eureka集群模式搭建(IDEA中运行)《一》

    新建一个springboot 工程,命名为:eureka_server。 其中pom.xml文件为: 项目启动文件为: application-eureka.yml application-eureka01.yml application-eureka02.yml 配置文件中的 hostname 和 defaultZone 中设置为别名,并修改host文件,在文件中添加映射关系,如图所示: 在IDEA中设置3个启动方式,分别

    2024年02月07日
    浏览(29)
  • 微服务 - Spring Cloud - Eureka Server单机和集群搭建、单机服务注册和集群服务注册

    Eureka 服务管理 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。 SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能 Eureka服务注册与发现 Eu

    2024年02月13日
    浏览(31)
  • Java之SpringCloud Alibaba【七】【Spring Cloud微服务网关Gateway组件】

    Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 跳转 Java之SpringCloud Alibaba【二】【微服务调用组件Feign】 跳转 Java之SpringCloud Alibaba【三】【微服务Nacos-config配置中心】 跳转 Java之SpringCloud Alibaba【四】【微服务 Sentinel服务熔断】 跳转 Java之SpringCloud Alibaba【五】【微服务

    2024年02月06日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包