zoukankan      html  css  js  c++  java
  • 三 : Nacos统一配置中心

    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

  • 相关阅读:
    java spring boot- freemarker 配置 yml使用流程
    layer 漂亮的弹窗
    react-native 打包apk 更新js和常见问题
    mysql 运行中 偶尔 报错 2002 也许是这个问题,内存不足导致的
    关于rsa公钥格式的处理,一行纯内容进行换行格式化
    第十篇、让UIScrollView的滚动条常显
    第九篇、自定义底部UITabBar
    第八篇、封装NSURLSession网络请求框架
    第二篇、Swift_自定义 tabbar 的 badgeValue显示样式
    第七篇、OC_图片的裁剪基于SDWebImage
  • 原文地址:https://www.cnblogs.com/cbpm-wuhq/p/15404346.html
Copyright © 2011-2022 走看看