前提:nacos已部署成功,持久化成功
部署nacos链接:https://www.jianshu.com/p/0ee9c76bd46b
- 创建springboot项目,添加nacos依赖(与springboot的版本一定要注意)
<dependencyManagement>
<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>
<dependencies>
<!--nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${spring-cloud-alibaba-version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${spring-cloud-alibaba-version}</version>
</dependency>
</dependencies>
- 配置命名空间(可选)
- 进入http://x.x.x.x:8848/nacos 配置命名空间(可选)
public
是默认的命名空间,没有命名空间ID
- 导入配置
body最上面一行 public|dev|uat|prod就是配置的命名空间,可点击筛选
Data Id
规则:项目名-环境.文件后缀${spring.application.name}-${spring.profiles.active}.${file-extension}
Group
规则:项目名-环境
${spring.application.name}-${spring.profiles.active} - bootstrap.yml 配置文件
resource文件夹下保留一个bootstrap.yml 文件即可
spring:
profiles:
active: dev
application:
name: platform
cloud:
nacos:
discovery:
server-addr: x.x.x.x:8848
namespace: 3982ea3b-4cc7-459d-86c5-40bc3e88b9e4
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
group: ${spring.application.name}-${spring.profiles.active}
file-extension: yaml
namespace: ${spring.cloud.nacos.discovery.namespace}
server-addr
:nacos地址
namespace
:命名空间id (踩坑:我直接配置命名空间,死活就是取不到配置文件,改成id就可以)
group
:${spring.application.name}-${spring.profiles.active}
file-extension
:看到有文档说yml yaml都可以,跟nacos命名空间后缀一样即可;但是我用yml不行,最后用的yaml,不知道为什么
- 一个环境多个配置文件
spring:
profiles:
active: dev
application:
name: platform
cloud:
nacos:
discovery:
server-addr: x.x.x.x:8848
namespace: 3982ea3b-4cc7-459d-86c5-40bc3e88b9e4
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
# 用于共享的配置文件
shared-configs:
- data-id: common-dev.yaml
group: platform-dev
# 常规配置文件
# 优先级大于 shared-configs,在 shared-configs 之后加载
extension-configs:
- data-id: platform-dev.yaml
group: platform-dev
refresh: true
参数解析:
- data-id : Data Id
- group:自定义 Data Id 所在的组,不明确配置的话,默认是 DEFAULT_GROUP。
- refresh: 控制该 Data Id 在配置变更时,是否支持应用中可动态刷新, 感知到最新的配置值。默认是不支持的。
遇到的问题:
- 启动不了(版本冲突)
- 服务列表不能发现服务或者发现的服务不在对应的命名空间(检查上面这几个配置)
- 连不上配置文件(检查上面这几个配置)