七天学会SpringCloud分布式微服务——04——Nacos配置中心
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-orderconfig: # 此处为增加内容,也就说,我们要为该微服务在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 编写,注入类,直接动态的刷新获取数据
@ResourceOrderYaml orderYaml;@GetMapping("/config")public String config() {/*1return timeout+","+autoConfirm;*/return orderYaml.toString();}
3、配置中心——实时监听配置更改
/*** springboot项目启动后开启监听* @param nacosConfigManager* @return*/@BeanApplicationRunner applicationRunner(NacosConfigManager nacosConfigManager) {return args -> {System.out.println("=========");ConfigService configService = nacosConfigManager.getConfigService();configService.addListener("service-order.yaml", "DEFAULT_GROUP", new Listener() {@Overridepublic Executor getExecutor() {return Executors.newFixedThreadPool(4);}@Overridepublic void receiveConfigInfo(String s) {System.out.println("变化的配置信息"+s);}});};}
4、配置中心——数据隔离
怎么区分多套环境(命名空间)
怎么区分多种微服务(Group)