SpringCloud Alibaba——Nacos服务注册与配置中心(三、Nacos持久化配置 & 集群搭建)

简介: SpringCloud Alibaba——Nacos服务注册与配置中心(三、Nacos持久化配置 & 集群搭建)

1.开篇



前两篇文章分别说到了Nacos作为服务注册中心、服务配置中心的情况,现在我们来聊聊有关Nacos持久化配置以及Nacos的集群搭建。


官方文档:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html,最终搭建出来的Nacos集群应该是下图这样:👇👇👇


最前面是我们发出的请求,这个请求会被Nginx挡下,来做反向代理、负载均衡,平摊到多台Nacos服务器中,最终连接上高可用的MySQL集群。


默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。

2.项目源码


github源码地址:https://github.com/2656307671/SpringCloud-Alibaba-Nacos

gitee源码地址:https://gitee.com/szh-forever-young/SpringCloud-Alibaba-Nacos


由于Nacos默认自带的是嵌入式数据库derby,在搭建集群的时候会出现数据一致性问题。所以这里要进行持久化配置,将Nacos中的默认数据库从derby切换到mysql。


首先,需要到github上下载nacos的linux版本,链接:https://github.com/alibaba/nacos/releases/tag/1.1.4,下载完成之后将压缩包上传至linux中,你可以使用Xftp,也可以使用rz 命令。


我这里解压完成之后,将nacos目录下的内容进行了备份,备份到一个mynacos的目录下。避免出错之后没法恢复的情况。


Nacos下载安装完成之后,我们要进行持久化配置,将数据库从derby切换到mysql。

在nacos的目录下,有一个conf目录,conf目录下有一个sql脚本叫nacos-mysql.sql,我们要做的就是执行这个sql脚本。


source命令执行完成之后,你可以show tables;查看有哪些表。这里我就没有再截图。

下一步找到 mynacos 目录下的conf,conf目录中有一个application.properties 文件,也是避免出错,先将其拷贝一份,再进行修改。

修改的内容如下,就是将nacos中的数据库从derby切换到mysql,同时设置mysql的相关连接信息。

参考官方文档:https://nacos.io/zh-cn/docs/deployment.html


到此,nacos持久化配置就完成了。下面要做的就是nacos的集群环境搭建了。(预计是 1台Nginx + 3台Nacos + MySQL)

首先梳理出3台Nacos的端口号,这里分别设置为3333、4444、5555。这个Nacos的集群节点信息需要在conf目录下的cluster.conf.example中进行配置,还是老规矩,先将其备份,然后进行修改。

PS:这里的ip不能写127.0.0.1,因为这是在同一台linux系统中配置了3台nacos,写成127.0.0.1了话无法分清到底是哪一台nacos。


我们这里将集群节点信息添加完成,一会启动肯定是使用命令 startup.sh -p port ,那么nacos它如何知道你这个-p 参数是什么意思呢?

这就需要到nacos中的bin目录下的startup.sh这个文件中进行修改。老规矩:修改之前先备份。


配置完上述内容之后,我们可以启动3台nacos服务器(3333、4444、5555)。


可以看到数量为3,就说明3台nacos服务器已经成功启动。

下面就要进行nginx的配置了,那必然要找到其配置文件:nginx.conf。


修改完成,下面启动nginx。


此时,我们的nginx启动完成、nacos启动完成、mysql后台正常运行。

这里一定要将防火墙关掉!!!这里一定要将防火墙关掉!!!这里一定要将防火墙关掉!!!

下面去浏览器中测试就行,因为我们上面配置了nginx的服务监听端口号为1111,而nginx在这里作为反向代理、负载均衡的角色,必然会挡下浏览器发出的请求,来为3台nacos服务器进行任务平摊,所以我们访问的url就应该是虚拟机ip + nginx端口号这样的形式。

你要是想直接3333、4444、5555肯定不行,因为在它们三个的前面挡着一个nginx呢。

账号密码都是nacos,点击提交,出现nacos的首页,则说明nacos集群、持久化配置已经全部完成。


这里,我再测试一下nacos作为服务配置中心的情况,首先新建一个配置文件,随便写点内容,保存。


然后回到mysql中,查询 config_info 这张表,可以看到我们刚刚添加的 nacos-config-client.yaml 文件。


最后再测试一下nacos作为服务注册中心的情况,因为之前是单机版的nacos,而现在要将9002注册进nacos集群,所以必须要修改9002的yml配置文件。然后再启动9002微服务模块(服务提供者)。9002的源码请参考上面给出的git仓库。

启动完成之后,到nacos的服务列表中查看,可以看到我们的9002(nacos-payment-provider)已经成功注册进了nacos集群。



以上,就是nacos的持久化配置、集群环境搭建的全部过程!!!

下面这张图是整个nacos集群的轮廓图。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
6149 122
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1735 3
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
6024 2
|
前端开发 Java Nacos
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
本文介绍了如何使用Spring Cloud Alibaba 2023.0.0.0技术栈构建微服务网关,以应对微服务架构中流量治理与安全管控的复杂性。通过一个包含鉴权服务、文件服务和主服务的项目,详细讲解了网关的整合与功能开发。首先,通过统一路由配置,将所有请求集中到网关进行管理;其次,实现了限流防刷功能,防止恶意刷接口;最后,添加了登录鉴权机制,确保用户身份验证。整个过程结合Nacos注册中心,确保服务注册与配置管理的高效性。通过这些实践,帮助开发者更好地理解和应用微服务网关。
2783 0
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
|
人工智能 安全 Java
AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
本次分享由阿里云智能集团云原生微服务技术负责人李艳林主讲,主题为“AI时代:从Spring Cloud Alibaba到Spring AI Alibaba”。内容涵盖应用架构演进、AI agent框架发展趋势及Spring AI Alibaba的重磅发布。分享介绍了AI原生架构与传统架构的融合,强调了API优先、事件驱动和AI运维的重要性。同时,详细解析了Spring AI Alibaba的三层抽象设计,包括模型支持、工作流智能体编排及生产可用性构建能力,确保安全合规、高效部署与可观测性。最后,结合实际案例展示了如何利用私域数据优化AI应用,提升业务价值。
2101 4
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
3435 81
高效搭建Nacos:实现微服务的服务注册与配置中心