随着微服务架构的广泛应用,服务注册与发现的需求变得越来越重要。nacos(dynamic naming and configuration service 首字母)作为一个开源的、动态的服务发现与配置管理平台,已成为许多开发者的首选工具。spring boot 与 nacos 的整合能够帮助开发者快速实现服务注册、配置管理以及动态控制等功能。
本文将详细介绍如何将 spring boot 3.2.x 和 nacos 2.3.2 进行整合,包括功能介绍、版本依赖、整合过程中的细节及效果演示。
1. nacos 简介与功能
nacos 是一个易于使用的、支持多种服务发现和配置管理的开源项目。它提供了如下核心功能:
- 服务发现与健康检查:支持通过 http、dns 和 grpc 协议进行服务注册与发现,同时可以对注册的服务进行健康检查。
- 动态配置管理:提供配置管理功能,允许开发者在不重启服务的情况下修改应用配置,并实时生效。
- 动态 dns 服务:支持通过 dns 查询服务实例的地址,实现更加灵活的服务发现。
- 分布式配置管理:能够为不同的环境、应用提供差异化的配置管理。
版本说明
nacos 1.x 已经停止功能维护,请尽快升级到 2.x 版本。并且 nacos 版本依赖 springboot、spring cloud 的版本,对于刚刚升级到 springboot3 的小伙伴来说,会遇到很多莫名其妙的问题,大多数都是由于版本依赖造成的问题,建议直接到官网找推荐的版本组合,springcloud alibaba与springboot版本对应。
亲测 springboot 3.2.x + nacos 2.3.2 + springcloud 2023.0.1.0 组合可用,下面介绍也将基于此版本组合讲解。
2. spring boot 3.2.x 与 nacos 2.3.2 整合的步骤
2.1 运行nacos服务
多种运行方式见官网:https://nacos.io/docs/latest/quickstart/quick-start/,本地直接使用docker安装即可运行。
nacos 2.x 除了 8848 端口以为还需要占用以下端口,如果云服务器部署需要放行端口号。
兼容性说明见:https://nacos.io/docs/v2/upgrading/version2-compatibility/
运行nacos服务后,还需设置密码,创建命名空间,新建配置等。
2.2 添加依赖
首先,你需要在 spring boot 项目中添加 nacos 的相关依赖。nacos 提供了一个官方的 spring cloud alibaba 依赖包来支持 spring boot 项目的集成。
修改 pom.xml
文件,添加如下依赖:
<dependencies> <!-- spring boot web依赖 --> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <!-- spring boot与nacos整合的核心依赖 --> <dependency> <groupid>com.alibaba.cloud</groupid> <artifactid>spring-cloud-starter-alibaba-nacos-discovery</artifactid> <version>2023.0.1.0</version> <!-- 与spring boot 3.2.x兼容 --> </dependency> <!-- 配置管理依赖,如果你需要配置管理功能 --> <dependency> <groupid>com.alibaba.cloud</groupid> <artifactid>spring-cloud-starter-alibaba-nacos-config</artifactid> <version>2023.0.1.0</version> </dependency> <!--提供了引导配置的支持,允许应用程序在启动时从外部配置中心(如 nacos、consul、config server 等)加载配置。--> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-bootstrap</artifactid> <version>4.1.4</version> </dependency> </dependencies>
注意:这里的
spring-cloud-starter-alibaba-nacos-discovery
和spring-cloud-starter-alibaba-nacos-config
是 spring cloud alibaba 相关的 starter。2023.0.1.0
版本与 spring boot 3.2.x 兼容。
2.3 配置 nacos 连接
在 bootstrap.properties
或 bootstrap.yml
文件中,配置 nacos 服务的连接信息。配置如下:
为什么要bootstrap.yml?用在应用程序启动的早期阶段,通过 bootstrap.yml 或 bootstrap.properties 文件加载配置,这些配置可以在主应用配置之前生效。spring-cloud-starter-bootstrap 提供了引导配置的支持。
spring: application: name: spring-boot3-14-nacos profiles: active: local # 切换环境 cloud: nacos: config: server-addr: 1.94.x.x:8848 namespace: c77472dd-768c-42b0-8755-b6d87af491cf # 填命名空间id file-extension: yaml group: default_group refresh-enabled: true # 如果开启认证的话需要用户名和密码 username: nacosu password: nacosu discovery: server-addr: 1.94.26.81:8848 namespace: c77472dd-768c-42b0-8755-b6d87af491cf # 如果开启认证的话需要用户名和密码 username: nacosu password: nacosu
配置项说明
发表评论