# nacos
# 安装
https://nacos.io/zh-cn/docs/quick-start-docker.html (opens new window) 可以使用 docker 方式,很简单的就能搭建起来。 官方文档中的安装步骤很详细。
# 作为 spring cloud config 配置中心
添加依赖
ext {
set('springCloudVersion', "2022.0.2")
set('springCloudAlibabaVersion', "2022.0.0.0-RC1")
}
dependencies {
implementation 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config'
}
2
3
4
5
6
7
application.yml
spring:
application:
name: demo
profiles:
active: dev
config:
import: "optional:nacos:${spring.application.name}-${spring.profiles.active}.yml?refresh=true"
cloud:
# Nacos帮助文档: https://nacos.io/zh-cn/docs/v2/concepts.html
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: dev
group: DEFAULT_GROUP
# 认证信息
# username: nacos
# password: nacos
fileExtension: yaml
import-check:
enabled: false
discovery:
server-addr: 127.0.0.1:8848
# 注册到 nacos 的指定 namespace,默认为 public
namespace: dev
group: DEFAULT_GROUP
# 认证信息
# username: nacos
# password: nacos
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
WARNING
如何实现 Spring Cloud Config 的功能?就是应用在启动的时候,可以自动取配置中心拉取 application.yml 和 application-dev.yml 这样的外部配置文件
Spring boot 3 中去掉了从 boostarp.yml 读取配置文件的方式,如果要支持,需要额外的依赖包。
但是提供了一个新的配置 spring.config.import (opens new window) ,Nacos Config 也支持这种方式,它的语法是 [optional:]nacos: {data-id}
- optional:表示该配置是可选的,如果不存在也不会报错,不加的话,如果配置文件不存在会打印一个警告
- nacos:表示使用 nacos 协议
- data-id:就是 nacos 中的 data-id 了,比如配置文件 demo.yml
一般这里会模仿 spring cloud config 要读取的配置文件:application.yml 和 环境配置文件,比如 application-dev.yml
比如optional:nacos:${spring.application.name}-${spring.profiles.active}.yml?refresh=true
要支持两个文件的话,就需要逗号隔开,比如:optional:nacos:${spring.application.name}.yml,optional:nacos:${spring.application.name}-${spring.profiles.active}.yml
写配置类,有自动刷新的功能,在配置中心修改之后,程序中该对象下的配置就会被刷新
@ConfigurationProperties(prefix = "app")
@Data
@ToString
public class AppConfig {
private String user;
}
2
3
4
5
6