Spring Cloud 项目基于 Nacos 实现服务注册发现
如果你的项目是基于 Spring Cloud 的项目,则可参考本文中的方式进行项目集成。
此处以 Maven 项目为了例子,简述集成的方式。
引入依赖
配置 Spring Cloud Alibaba 版本
<properties>
<!-- For Spring Cloud Hoxton.SR12 -->
<spring-cloud-alibaba.version>2.2.10</spring-cloud-alibaba.version>
<!-- For Spring Cloud 2021.0.x -->
<!-- <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version> -->
<!-- For Spring Cloud 2023.0.x -->
<!-- <spring-cloud-alibaba.version>2023.0.1.2</spring-cloud-alibaba.version> -->
</properties>
导入 Spring Cloud Alibaba 依赖
<dependencyManagement>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-alibaba-dependencies -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在项目中引入 Nacos Config Client
和 Nacos Discovery Client
<!-- For Spring Cloud Nacos Config Client -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- For Spring Cloud Nacos Discovery Client -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置服务
创建 bootstrap.yaml 文件,配置如下:
# 指定启用环境
spring:
# 设置应用名称,根据应用实际情况替换
application:
name: demo-app
main:
allow-bean-definition-overriding: true
cloud:
nacos:
# 设置nacos地址
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
# 配置中心设置
config:
file-extension: yaml
# 指定命名空间,默认为public
namespace: d4a77f87-ee73-4f71-a281-d8cf617d8051
# 指定默认配置
extension-configs:
- dataId: common-config.yaml
group: DEFAULT_GROUP
refresh: true
- dataId: dynamic-tp.yaml
group: DEFAULT_GROUP
refresh: true
# 注册中心设置
discovery:
namespace: d4a77f87-ee73-4f71-a281-d8cf617d8051
metadata:
'[name]' : ${swagger.title}
'[detail]' : ${swagger.description}
'[version]' : ${swagger.version}
配置说明:
- 此服务的应用名称为
demo-app
- 此服务指向的Nacos地址是
127.0.0.1:8848
,账号密码是:nacos/nacos
- 此服务使用了Nacos命名空间地址为
d4a77f87-ee73-4f71-a281-d8cf617d8051
- 此服务配置了公共配置
common-config.yaml
和dynamic-tp.yaml
特定环境配置
不同环境使用的Nacos服务端多不相同,可以通过不同的配置来区分环境,以 dev 环境为例,创建 bootstrap-dev.yaml 文件,配置如下:
# 指定启用环境
spring:
# 设置应用名称,根据应用实际情况替换
application:
name: demo-app
main:
allow-bean-definition-overriding: true
cloud:
nacos:
# 设置nacos地址
server-addr: http://192.168.3.27:8848
username: nacos
password: nacos
# 配置中心设置
config:
file-extension: yaml
# 指定命名空间,默认为public
namespace: fa05d9d6-d47d-4d49-b797-b918ffba2e22
#context-path: /nacos
# 指定默认配置
extension-configs:
- dataId: common-config.yaml
group: DEFAULT_GROUP
refresh: true
- dataId: dynamic-tp.yaml
group: DEFAULT_GROUP
refresh: true
# 注册中心设置
discovery:
namespace: fa05d9d6-d47d-4d49-b797-b918ffba2e22
register-enabled: false
metadata:
'[name]' : ${swagger.title}
'[detail]' : ${swagger.description}
'[version]' : ${swagger.version}
service: ${spring.application.name}
作者:Jeebiz 创建时间:2024-10-02 19:44
最后编辑:Jeebiz 更新时间:2024-10-03 00:38
最后编辑:Jeebiz 更新时间:2024-10-03 00:38