• [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}
  • 相关阅读:
    数据库存储的数据为 unicode格式,在.NET 读取出来并转换为繁体字?
    ASP.net 打包并附加数据库
    xml特殊符號
    母板頁面 弹出提示错误的解决方案
    SQL一句實現上一條 下一條信息
    Serializing Faults using XmlSerializer
    VS2005 編譯WebService 為 CS文件
    Java开发的一些文件结构及位置
    kalilinux 其他配置
    完美解决mysql保存中文出现1366错误
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/15424641.html
Copyright © 2020-2023  润新知