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可以查看

 

posted @ 2021-01-27 00:10  Mr.Simm  阅读(482)  评论(0编辑  收藏  举报