Springboot整合Nacos配置中心
前提
安装了Nacos服务端并登陆到其控制台页面。
创建一个Springboot工程。
Nacos配置:(相关概念后面说明):
创建一个命名空间,当然,也有默认的命名空间。
创建配置文件:
整合
第一步:引入Pom依赖:
springboot的版本是1.x就引入0.1.x,springboot版本是2.x就引入0.2.x版本。
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.7</version>
</dependency>
第二步:配置Nacos Server地址:
#server地址
nacos.config.server-addr=127.0.0.1:12580
#配置配置的namespace,就是刚刚创建的那个
nacos.config.namespace=fe06ce62-aef9-4b78-b0cd-512e4bc56e3c
第三步:编写Controller类:
@RestController
@RequestMapping("/nacos")
//groupId
//dataId
//@NacosPropertySource(dataId = "aaa")
@NacosPropertySource(groupId = "NACOS-TEST-GROUP",dataId = "NACOS-TEST-DATA-ID",autoRefreshed = true)
public class NacosDemoController {
@NacosValue(value = "${nacos.info:默认值}",autoRefreshed = true)
private String info;
@GetMapping("/project-info")
public String projectInfo(){
return info;
}
}
使用注解@NacosPropertySource配置需要引入的外部配置的namespace、groupId、dataId等信息。
使用注解@NacosValue来引入配置文件中的具体配置项,使用${}表达式,冒号后可以填写默认值,当配置项不存在或者获取失败后,使用该默认值赋值。
autoRefreshed 代表是否自动动态刷新配置,默认false。
启动访问该接口:
成功。并且修改配置后,会动态刷新。
一些概念
NameSpace:
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
GroupId:
Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 MQ_topic 配置。
DataId:
Nacos 中的某个配置集的 ID。配置集 ID 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。Data ID 通常采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。此命名规则非强制。
一个实践是:
使用NameSpace来定义环境,比如开发环境(dev)、测试环境(test)、生产环境(prod)。
使用GroupId来定义不同的应用,比如支付应用Pay,商品应用Goods。
使用DataId来区分配置,比如线程池的配置ThreadPoolConfig,数据源的配置,Redis配置,MQ配置等。
所以就可以有多条线:
dev环境-pay应用-数据源配置。
dev环境-pay应用-Redis配置。
test环境-pay应用-数据源配置。
test环境-pay应用-Redis配置。
prod环境-pay应用-数据源配置。
prod环境-pay应用-Redis配置。
或者有些人喜欢使用NameSpace来区分应用,使用GroupId来区分环境,这种看个人习惯。
更多推荐
所有评论(0)