zoukankan      html  css  js  c++  java
  • springcloud项目集成nacos配置中心

    Nacos 是一款阿里的开源产品。致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,用于快速实现动态服务发现、服务配置、服务元数据及流量管理。

    一、目标

    引用nacos服务,完成多系统的服务注册与配置中心功能。同时需要保障系统的服务与配置可以支持多环境的切分。

    二、方案说明

    1、借用nacos的namespace与group的两级分类。namespace作为系统级别,group作为多环境(dev/test/prod)级别进行管控;

    2、服务注册中心与配置中心对应的group命名是分离的,可以不同;

    3、如果启用了nacos的权限管控功能,则是以namespace作为资源权限进行管控的。通过用户-角色-资源权限的管控体系,可以实现系统读写权限隔离,避免非法操作;

    三、配置中心的三种配置方式

    • DEFAULT_GROUP:nacos系统默认的分组,系统启动会默认扫描1、${prefix}-${spring.application.name}.${file-extension},2、${prefix}-${spring.application.name},3、${prefix}-${spring.application.name}-${spring.profiles.active}.${file-extension} 的data-id配置文件。这些默认文件的级别最高,遇到同名的key以其为准;
    • extension-configs:自定义配置项。可以自定义data-id,group。注意data-id的命名必须要携带文件后缀,如.yaml。其级别低于系统默认文件;
    • shared-configs:自定义配置项,可以存储不需要区分环境的公共配置。比如线程池的配置。可以自定义data-id,group。其级别低于extension-configs;

    四、配置中心接入实战

    4.1、环境简述

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Greenwich.SR5</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.1.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        <version>2.1.3.RELEASE</version>
    </dependency>

    4.2、为应用注册命名空间

      

    4.3、命名空间下注册配置项

      

    4.4、项目集成Nacos配置中心

    bootstrap.yaml
    spring:
      application:
        name: service-consumer
      profiles:
        active: dev
      cloud:
        nacos:
          server-addr: 10.5.113.38:8848
          username: app-exchange
          password: 123456
          discovery:
            namespace: 745f3022-9c9e-4795-9217-040aaf6f18d9
            group: ${spring.profiles.active:prod}  # group分成 dev/test/prod
          config:
            namespace: 745f3022-9c9e-4795-9217-040aaf6f18d9
            file-extension: yaml
            extension-configs[0]:
              data-id: db.yaml
              group: ${spring.profiles.active:prod}   # group分成 dev/test/prod
              refresh: true
            extension-configs[1]:
              data-id: auth.yaml
              group: ${spring.profiles.active:prod}
              refresh: true
            shared-configs[0]:
              data-id: base.yaml
              group: common

    系统启动后会看到nacos客户端,成功订阅配置文件,有相应的log可以查看

    每天都是崭新的开始 ——Mr.司满(214382122)[]~( ̄▽ ̄)~*
  • 相关阅读:
    两款开发辅助工具介绍
    探究Repository模式的两种写法与疑惑
    js 时间处理
    Jquery元素追加和删除
    js 格式验证总结
    jquery UI datepicker时间控件的使用
    jquery 实现 点击按钮后倒计时效果,多用于实现发送手机验证码、邮箱验证码
    JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
    form表单和ajax表单提交(Html.BeginForm()、Ajax.BeginForm())的差别
    了解了这些才能开始发挥jQuery的威力(转)
  • 原文地址:https://www.cnblogs.com/MrSi/p/14333068.html
Copyright © 2011-2022 走看看