config center
- Nacos作为配置中心-基础配置
- Nacos作为配置中心-分类配置
- nacos将配置持久化到mysql
新型技术,替代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
# environmentspring:profiles:# active: dev# active: testactive: info # 测试分组
- bootstrap.yaml
# config center --> serverserver:port: 3377spring:application:name: nacos-config-clientcloud: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) {// bootSpringApplication.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