1、一个问题:如果Nacos数据集中的配置和微服务项目存在相同的配置,哪一个生效
2、配置中心——动态刷新
2.1 第一种不推荐
2.2 第二种使用步骤
- services 引入依赖
<!--配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- order 微服务yaml文件增加
spring:
application:
name: service-order
config: # 此处为增加内容,也就说,我们要为该微服务在nacos种创建配置文件
import:
- nacos:service-order.yaml # 这里注意数组要加-
- 在nacos中创建service-order.yaml 配置文件
- 现在配置好文件了,动态刷新实现
OrderYaml.java文件 建立配置文件属性的对应 类,驼峰映射
package com.zhenbang.yaml;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "order")
@Data
public class OrderYaml {
String timeout;
String autoConfirm;
}
- OrderController 编写,注入类,直接动态的刷新获取数据
@Resource
OrderYaml orderYaml;
@GetMapping("/config")
public String config() {
/*1return timeout+","+autoConfirm;*/
return orderYaml.toString();
}
3、配置中心——实时监听配置更改
/**
* springboot项目启动后开启监听
* @param nacosConfigManager
* @return
*/
@Bean
ApplicationRunner applicationRunner(NacosConfigManager nacosConfigManager) {
return args -> {
System.out.println("=========");
ConfigService configService = nacosConfigManager.getConfigService();
configService.addListener("service-order.yaml", "DEFAULT_GROUP", new Listener() {
@Override
public Executor getExecutor() {
return Executors.newFixedThreadPool(4);
}
@Override
public void receiveConfigInfo(String s) {
System.out.println("变化的配置信息"+s);
}
});
};
}
4、配置中心——数据隔离
怎么区分多套环境(命名空间)
怎么区分多种微服务(Group)