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版本

graphic

 

我们选用 graphic

 

 

客户端配置

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

 

 

graphic

 

三: 配置中心-加载多配置集

应用场景

  1.   有时候为了多模块项目的配置共享,我们需要进行配置拆分以及加载多配置集;
  2.   比如我们有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;
    }
}
View Code

 

 三: 配置中心-其他功能

 

1,配置导出和导入;

   把一个环境的配置导出备份,然后导入到另一个环境

2,配置克隆功能;

   直接把一个环境的配置导入到另一个环境,克隆前可以修改三要素

3,历史版本,可以进行版本回滚;

graphic

 

 4,监听查询,查看哪些客户端正在监听配置中心;

graphic

 

 

 

 

 posted on 2021-10-13 21:36  wu小强  阅读(218)  评论(0编辑  收藏  举报