config center
新型技术,替代spring config center & bus
Nacos作为配置中心-基础配置
⑴ module
cloudalibaba-config-nacos-client3377
(2) pom
<dependencies>
<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos-discovery-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--web + actuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--一般基础配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
(3) yaml
- application.yaml
# environment
spring:
profiles:
# active: dev
# active: test
active: info # 测试分组
- bootstrap.yaml
# config center --> server
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #服务注册中心地址
config:
server-addr: localhost:8848 #配置中心地址
file-extension: yaml #指定yaml格式的配置
# group: DEV_GROUP # 生产 分组
group: TEST_GROUP # 测试 分组
namespace: ac4eb07f-e257-44eb-80fb-178447a304f7 # 配置namespace 为流水号, 下面可以有多个分组group, 每个分组可以有多个实例dataId
# 配置规则如下.
# https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
# ${prefix}-${spring.profiles.active}.${file-extension}
# {spring.application.name}-${profile}.${spring.cloud.nacos.config.file-extension}
# so dataID ---> nacos-config-client-dev.yaml
(4) 主启动
@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClientMain3377 {
public static void main(String[] args) {
// boot
SpringApplication.run(NacosConfigClientMain3377.class, args);
}
}
(5) 业务接口,配置刷新
@RefreshScope // auto refresh config
@RestController
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo() {
return "config info from nacos center ---> \n" + configInfo;
}
}
(6)核心,在nacos web界面配置信息存放
界面配置
(7)配置搞定后,启动服务,访问接口,便可获取配置信息了。
Nacos作为配置中心-分类配置
nacos 中的namespace, group, dataId. 类似Java中的包,类,方法。
- dataId, 指定spring.profile.active和配置文件的DataID来使不同环境下读取不同的配置. 切换application.yaml 中的环境即可。
- group方案,新建分组即可,通过group来区分环境。
- namespace方案,区分环境。
nacos将配置持久化到mysql
默认持久化到内置数据库derby
https://nacos.io/zh-cn/docs/deployment.html