Nacos统一配置中心
一: 配置中心入门 hello word
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
springcloudalibaba springcloud springboot版本
我们选用
客户端配置
spring.application.name=nacos_config_test
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.name=nacos_config.properties
启动类加:
@EnableDiscoveryClient
通过@Value 读取配置:
通过@RefreshScope刷新读取最新配置;
默认访问地址:127.0.0.1:8848:nacos
二: 配置中心-数据模型
Nacos 数据模型 Key 由三元组唯一确定, Namespace默认是空串,公共命名空间(public);分组默认是 DEFAULT_GROUP;最后是配置文件名 dataId 。
三元组元素包括: 1:Namespace默认是空串;2:分组默认是 DEFAULT_GROUP ;3:配置文件名 dataId
spring.application.name=nacos_config_test spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# 1:Namespace默认是空串 spring.cloud.nacos.config.namespace=966c30b5-5ed2-4fde-9547-da56f6d5b831
# 2:分组默认是 DEFAULT_GROUP spring.cloud.nacos.config.group=DEFAULT_GROUP
# 3:配置文件名 spring.cloud.nacos.config.name=nacos_config.properties
三: 配置中心-加载多配置集
应用场景
- 有时候为了多模块项目的配置共享,我们需要进行配置拆分以及加载多配置集;
- 比如我们有10个业务模块项目;mysql,redis,reabbitmq等配置都是一样的,为了统一管理,我们在nacos配置中心需要单独的搞成一个通用配置,然后供主项目引入;
案例:
抽取公共配置:
1:mysql_common.properties
DEFAULT_GROUP
java1234.mysql.common=mysqlconfig
2:redis_common.properties
DEFAULT_GROUP
java1234.redis.common=redisconfig
3:业务模块项目CRM:
crm.properties
CRM_GROUP
java1234.crm.config=crm
4:业务模块项目OA
oa.properties
OA_GROUP
java1234.oa.config=oa
实例代码
1:bootstrap.properties配置
spring.application.name=nacos_config_test spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.namespace=966c30b5-5ed2-4fde-9547-da56f6d5b831 #spring.cloud.nacos.config.group=DEFAULT_GROUP #spring.cloud.nacos.config.name=nacos_config.properties spring.cloud.nacos.config.extension-configs[0].data-id=mysql_common.properties spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP spring.cloud.nacos.config.extension-configs[0].refresh=true spring.cloud.nacos.config.extension-configs[1].data-id=redis_common.properties spring.cloud.nacos.config.extension-configs[1].group=DEFAULT_GROUP spring.cloud.nacos.config.extension-configs[1].refresh=true spring.cloud.nacos.config.extension-configs[2].data-id=crm.properties spring.cloud.nacos.config.extension-configs[2].group=CRM_GROUP spring.cloud.nacos.config.extension-configs[2].refresh=true spring.cloud.nacos.config.extension-configs[3].data-id=oa.properties spring.cloud.nacos.config.extension-configs[3].group=OA_GROUP spring.cloud.nacos.config.extension-configs[3].refresh=true java1234.name=jack java1234.age=23
2:测试代码

@RestController @RequestMapping("/nacos") @RefreshScope public class NacosConfigController { @Value("${java1234.name}") private String name; @Value("${java1234.age}") private String age; @Value("${java1234.mysql.common}") private String mysql; @Value("${java1234.redis.common}") private String redis; @Value("${java1234.crm.config}") private String crm; @Value("${java1234.oa.config}") private String oa; @GetMapping("/getConfigInfo") public String getConfigInfo(){ return name+":"+age; } @GetMapping("/getCRMConfigInfo") public String getCRMConfigInfo(){ return mysql+":"+redis+":"+crm; } @GetMapping("/getOAConfigInfo") public String getOAConfigInfo(){ return mysql+":"+redis+":"+oa; } }
三: 配置中心-其他功能
1,配置导出和导入;
把一个环境的配置导出备份,然后导入到另一个环境
2,配置克隆功能;
直接把一个环境的配置导入到另一个环境,克隆前可以修改三要素
3,历史版本,可以进行版本回滚;
4,监听查询,查看哪些客户端正在监听配置中心;