目录
1. 为何需要配置中心
2. nacos的配置中心
2.1 配置示例
2.2 多环境配置
2.3 GROUP
2.4 namespace
没有配置中心的情况下会出现什么情况:
加配置中心后可以有效的解决上述的问题。
下面的开发示例演示了如何在一个服务中加入配置中心的支持。如果对Netflex公司开发的微服务组件有所了解,应该知道在Neflex服务组件中也有配置中心,但需要专门创建一个注册中心服务与GitHub(或类型的git仓库)中的配置文件仓库关联,其他服务使用配置中心时需要调用配置中心服务。nacos则比较简单,只用在需要配置中心的模块中直接配置即可。
具体步骤:
1) 新建一个模块,作为配置中心
2)pom文件引入必要的依赖
org.springframework.boot
spring-boot-starter-web
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
com.alibaba.nacos
nacos-client
2) 编写项目配置文件
bootstap.yml与application.yml之间的区别:
bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息。
bootstap的使用场景:
bootstrap.yml
server:
port: 8877 #服务端口号
spring:
application:
name: service-config #服务名称
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #中心中西ip及端口号
config:
server-addr: 127.0.0.1:8848 #配置中心及端口号
file-extension: yml #存放在配置中心的配置文件的扩展名
application.yml
spring:
profiles:
active: dev #表示启用开发环境的配置文件
3)编写启动类
@SpringBootApplication
@EnableDiscoveryClient
public class ConfigApp {
public static void main(String[] args) {
SpringApplication.run(ConfigApp.class,args);
}
}
4)启动配置服务,测试是否能正常的加入到nacos
5)nacos中增加配置信息
$ {prefix}: 前缀,默认为spring.application.name的值
$ {spring.profile.active} 当前环境对应的profile,(多环境配置)
$ {file-extension} 配置内容的数据格式(文件扩展名)
根据上面的规则,我们可以将dataId配置为: nacos-config-dev.yml , 此处需要和bootstrap.yml中配置的file-extension属性保持一致,否则不能正常读取。
dev表示 运行环境 可在application.yml文件中进行更改 后缀是配置文件格式
注意:此处需要注意配置文件的格式,如果是yml文件,则冒号后面需要有一个空格。
6)读取配置中心信息
ConfigController.java
@RestController
@RefreshScope
public class ConfigController {
@Value("${config.msg}")
private String msg;
@GetMapping("/config/msg")
public String getMsg() {
return msg;
}
}
然后就是课 运行 进行测试了 http://localhost:8877/config/msg
1)通过上面讲述的配置步骤,再配置一个配置文件,dataId:nacos-config-test.yml, test表示为测试环境。如图所示:
2)将application.yml配置文件修改使用test环境
spring:
profiles:
active: test
3)启动服务测试,如图,说明多环境配置生效。
1)在配置中心中创建一个新的配置文件,并指定分组,dataId的规则同上。
2)配置文件
bootstrap.yml
application.yml
3)启动测试
1) public为保留的命名空间名称
2)创建命名空间
3)创建成功
4)在创建的命名空间中添加配置
具体配置如下:
config:
msg: namespace DEFAUT_GROUP nacos-config-dev.yml
5) 配置文件
6) 测试