• [Alibaba微服务技术入门]_服务配置中心进阶_第6讲


    配置共享;不同环境不同项目能自由切换和读取配置中心里面的数据

    当配置越来越多的时候,我们就发现有很多配置是重复的,这时候就考虑可不可以将公共配置文提取出来,然后实现共享呢?

    比如,问题1:实际开发中,通常一个系统会准备

    • dev开发环境
    • test测试环境
    • prod生产环境。
    • 如何保证指定环境启动时服务能正确读取到Nacos上相应环境的配置文件呢?

    比如,问题2:

    • 一个大型分布式微服务系统会有很多微服务子项目,
    • 每个微服务项目又都会有相应的开发环境、测试环境、预发环境、正式环境……
    • 那怎么对这些微服务配置进行管理呢?

    如果遇到上面的问题,其实就是需要我们对配置进行分类处理。这里大家得需要了解几个概念的问题

    命名空间(Namespace):命名空间可用于进行不同环境的配置隔离。一般一个环境划分到一个命名空间

    配置分组(Group):配置分组用于将不同的服务可以归类到同一分组。一般将一个项目的配置分到一组

    配置集(Data ID):在系统中,一个配置文件通常就是一个配置集。一般微服务的配置就是一个配置集

    这三者关系:

    默认情况:

    Namespace=public,Group=DEFAULT_GROUP,默认Cluster是DEFAULT

    Nacos默认的命名空间是public,Namespace主要用来实现隔离。

    比方说我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个Namespace,不同的Namespace之间是隔离的。

    Group默认是DEFAULT GROUP,Group可以把不同的微服务划分到同一个分组里面去

    Service就是微服务;一个Service可以包含多个Cluster(集群),Nacos默认Cluster是DEFAULT,Cluster是对指定微服务的一个虚拟划分。

    比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的Service微服务起一个集群名称(HZ),给广州机房的Service微服务起一个集群名称(GZ),还可以尽量让同一个机房的微服务互相调用,以提升性能。

    最后是Instance,就是微服务的实例。

    案例一:Data ID 进阶使用

    • 指定spring.profile.active和配置文件的DatalD来使不同环境下读取不同的配置
    • 默认空间+默认分组+新建dev和test两个DatalD
    • 通过spring.profile.active属性就能进行多环境下配置文件的读取

    第一步:创建 application.yml,将 spring.profile.active 属性移植到 application.yml 文件中

    第二步:再次在配置中心中新建 nacos-config-client-test.yaml 文件。这样就形成了两个DataID

     

     

     案例二:Group 进阶使用

    • 新建两个Group:TEST_GROUP 和 DEV_GROUP
    • 通过Group实现环境区分
    • 在nacos图形界面控制台上面新建两个配置文件DatalD,但是名字一样 nacos-config-client-info.yaml

    第一步:新建两个配置文件DatalD,但是名字一样 nacos-config-client-info.yaml

    第二步:在bootstap.yaml中,添加 spring.cloud.nacos.config.group 属性

    server:
      port: 7001
    spring:
      application:
        name: nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848
          config:
            file-extension: yaml
            server-addr: localhost:8848
            group: DEV_GROUP # 配置中心分组
    # 配置中心文件格式 ${spring.application.name}-{spring.profile.active}.{file-extension}

    第三步:修改application.yaml内容,让程序启动后加载 spring.profile.active.info

    spring:
      profiles:
        active: info

     案例三:Namespace 进阶使用

    • 新建dev/test的Namespace
    • 回到服务管理-服务列表查看
    • 按照域名配置填写

    第一步:新建命名空间,分别是dev 和 test 命名空间

     

     第二步:回服务列表去查看命名空间

    第三步:配置dev命名空间下DataId,Group

     第四步:在bootstrap.yml文件中,添加 spring.cloud.nacos.config.namespace 属性,属性指向 namespace 的 id

    server:
      port: 7001
    spring:
      application:
        name: nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848
          config:
            file-extension: yaml
            server-addr: localhost:8848
            group: DEV_GROUP
            namespace: 2a7e7783-99e1-49da-bfe5-82ff7840da15
    
    # 配置中心文件格式 ${spring.application.name}-{spring.profile.active}.{file-extension}
  • 相关阅读:
    页面跳转时,统计数据丢失问题探讨
    模拟form提交数据
    mysql学习问题解决
    20200824_小程序自动化测试与失败用例截图
    20200819_App自动化测试框架实战-这两天的很重要
    20200817_多点触摸操作和Hybrid应用自动化
    20200814_App元素定位&滑动操作
    20200812_adb常用命令&第一个App自动化测试脚本
    20200810_TestNG单元测试框架&App自动化环境部署
    20200807_Maven项目构建&TestNG单元测试框架
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/15424641.html
Copyright © 2020-2023  润新知