SpringCloud Nacos作为配置中心

目录

    • 一、概述:
    • 二、Nacos作为配置中心的基础配置:
    • 三、Nacos作为配置中心-分类配置:
      • 3.1 开发中的多环境对项目管理,一般遇到的问题有如下:
      • 3.2 Nacos的图像化管理界面:
      • 3.3 分类配置的设计思想:Namespace+Group+Data ID :
      • 2.4 分类配置的案例:
        • 1.Data ID方案:
        • 2.Group配置方案:
        • 3.NameSpace配置方案:
    • 四、Nacos集群和持久化配置:

一、概述:

在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。Nacos可以作为配置中心,存储和管理配置信息

二、Nacos作为配置中心的基础配置:

快速开始步骤:

SpringCloud Nacos作为配置中心_第1张图片

(1)新建模块:cloudalibaba-config-nacos-client3377

(2)pom:


        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-actuator
            2.2.2.RELEASE
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
            true
        
    

(3)yml编写,这里需要两个yml
SpringCloud Nacos作为配置中心_第2张图片
3.1 bootstrap.yml:

#nacos配置
server:
  port: 3377

spring:
  application:
    name: nacos-config-client #微服务名称:nacos配置中心的客户端
  cloud:
    nacos:
      discovery: #服务发现的配置
        server-addr: localhost:8848 #nacos服务注册中心,即将此服务注册进nacos
      config: #配置中心的配置
        server-addr: localhost:8848 #nacos作为配置中心的地址
        file-extension: yaml #官方指定以.yaml结尾的文件作为文件扩展名,file-extension:文件扩展名的意思

SpringCloud Nacos作为配置中心_第3张图片
3.2 application.yml:

spring:
  profiles: #特征文件/配置文件
    active: dev  #表示开发环境

(4)主启动类:com.fan.springcloud.NacosConfigClientMain3377

package com.fan.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication //SpringBoot应用
@EnableDiscoveryClient //开启服务发现客户端
public class NacosConfigClientMain3377 {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigClientMain3377.class,args);
    }
}

(5)业务类controller: controller.ConfigClientController

package com.fan.springcloud.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope //这个和config+bus总线那边的注解一样,支持nacos的动态刷新功能
public class ConfigClientController {
    @Value("${config.info}")//注入配置文件中config.info的信息
    private String configInfo;
    
    @GetMapping(value = "/config/info")
    public String getConfigInfo(){
        return configInfo;
    }
}

注意:这里通过spring cloud 原生注解@RefreshScope 实现配置的自动更新

Data ID 格式命名规则:
SpringCloud Nacos作为配置中心_第4张图片

(6)测试:

(6.1)在nacos的网页控制台/仪表盘 创建在线配置文档:

SpringCloud Nacos作为配置中心_第5张图片
设置data ID(数据id,这里注意命名格式要符合规定): nacos-config-client-dev.yaml :

config:
  info: config信息用于dev环境,来自nacos配置中心,dataid:nacos-config-client-dev.yaml,版本=1

SpringCloud Nacos作为配置中心_第6张图片

然后发布即可:

总结:
SpringCloud Nacos作为配置中心_第7张图片

SpringCloud Nacos作为配置中心_第8张图片
(6.2)启动微服务并测试:注意,在线配置文件这的后缀拓展名必须是yaml,写成yml报错
SpringCloud Nacos作为配置中心_第9张图片
测试结果:localhost:3377/config/info

在这里插入图片描述

在这里插入图片描述

三、Nacos作为配置中心-分类配置:

SpringCloud Nacos作为配置中心_第10张图片

3.1 开发中的多环境对项目管理,一般遇到的问题有如下:

SpringCloud Nacos作为配置中心_第11张图片

3.2 Nacos的图像化管理界面:

1.配置管理

SpringCloud Nacos作为配置中心_第12张图片
2.命名空间

SpringCloud Nacos作为配置中心_第13张图片

3.3 分类配置的设计思想:Namespace+Group+Data ID :

SpringCloud Alibaba Nacos Config配置中心有三种配置方法,分别为:

1.Data ID配置方案

2.Group配置方案

3.NameSpace配置方案
    SpringCloud Nacos作为配置中心_第14张图片

  • NameSpace —— Nacos默认的命名空间是public, Namespace主要用来实现隔离。比方说我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个Namespace,不同的Namespace之间是隔离的。

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

  • Service/DataId —— Service就是微服务。一个Service可以包含多个Cluster (集群) ,Nacos默认Cluster是DEFAULT,Cluster是对指定微服务的一个虚拟划分。比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的Service微服务起一个集群名称(HZ),给广州机房的Service微服务起一个集群名称(GZ) ,还可以尽量让同一个机房的微服务互相调用,以提升性能。

SpringCloud Nacos作为配置中心_第15张图片

SpringCloud Nacos作为配置中心_第16张图片

2.4 分类配置的案例:

SpringCloud Alibaba Nacos Config配置中心有三种配置方法,分别为:

1.Data ID配置方案

2.Group配置方案

3.NameSpace配置方案

SpringCloud Nacos作为配置中心_第17张图片

SpringCloud Nacos作为配置中心_第18张图片

1.Data ID方案:

通过spring.profiles.active属性就能进行多环境下配置文件的读取
修改application.yml配置文件:
SpringCloud Nacos作为配置中心_第19张图片

然后在nacos网页控制台新建三个不同的Data Id :
(注意,这里为了演示Data Id ,所以我们会在相同的public下的同一个默认组下使用不同的Data Id名字):

SpringCloud Nacos作为配置中心_第20张图片

SpringCloud Nacos作为配置中心_第21张图片

类似的,我们用以上方式创建nacos-config-client-pro.yaml,nacos-config-client-test.yaml
SpringCloud Nacos作为配置中心_第22张图片
最终效果:
SpringCloud Nacos作为配置中心_第23张图片

然后我们想使用哪个配置文件,直接在application,yml中激活它就可,如图使用test配置文件,则对应nacos-config-client-test.yaml

SpringCloud Nacos作为配置中心_第24张图片

测试:localhost:3377/config/info

SpringCloud Nacos作为配置中心_第25张图片
发现我们远程成功读取到了nacos中的配置文件。

Data Id总结:
第一步:application.yml中修改并激活要使用的环境。
第二步:nacos网页控制台在配置列表新建同一个组下的不同data id ,data id的命名规则请遵循以下方式:三部分构成:

spring.application.name的值-spring.profile.active的值.配置文件的扩展名



2.Group配置方案:

通过Group实现环境区分:原理:相同的Data id名称,但是让他们位于不同的组,来实现隔离使用.
group: DEV_GROUP #指定所属分组,这里相当于切换配置文件的开关

SpringCloud Nacos作为配置中心_第26张图片

bootstrp.yml:

#nacos配置
server:
  port: 3377

spring:
  application:
    name: nacos-config-client #微服务名称:nacos配置中心的客户端
  cloud:
    nacos:
      discovery: #服务发现的配置
        server-addr: localhost:8848 #nacos服务注册中心,即将此服务注册进nacos
        
      config: #配置中心的配置
        server-addr: localhost:8848 #nacos作为配置中心的地址
        file-extension: yaml #官方指定以.yaml结尾的文件作为文件扩展名,file-extension:文件扩展名的意思
        group: DEV_GROUP  #指定所属分组,指定所属分组,这里相当于切换配置文件的开关

SpringCloud Nacos作为配置中心_第27张图片
这里新建三个不同的组:DEV_GRUOP,TEST_GRUOP,PRO_GRUOP

SpringCloud Nacos作为配置中心_第28张图片
SpringCloud Nacos作为配置中心_第29张图片

SpringCloud Nacos作为配置中心_第30张图片

结果预览:
SpringCloud Nacos作为配置中心_第31张图片

启动微服务并测试:profile环境不变,group更换:
group: DEV_GROUP #指定所属分组,这里相当于切换配置文件的开关,TEST_GROUP,PRO_GROUP两个值可选

SpringCloud Nacos作为配置中心_第32张图片
组开关切换测试:

SpringCloud Nacos作为配置中心_第33张图片

切换到测试组:
SpringCloud Nacos作为配置中心_第34张图片
然后测试:成功读取:
SpringCloud Nacos作为配置中心_第35张图片
Group配置方案总结:
第一步:application.yml中active激活的环境不用再来回切换变动了。用一个固定的。
第二步:修改bootstrap.yml中config.group,设置几个不同的备用组,和nacos网页控制台的配置列表中的组对应。
第三步:通过手动改变组名来实现切换不同的配置文件内容。(同一个配置文件的唯一data id ,但是内容不同)

3.NameSpace配置方案:

通过指定namespace进行区别

第一步:新建命名空间:
这里的命名空间类似于一个公司,然后公司里面又分好几个项目组,组内有好多配置(如组内开发的,测试的,运维的)
SpringCloud Nacos作为配置中心_第36张图片
新建命名空间:这里我们创建了两个,dev和test,命名空间的id我们不填,让其自动生成。

SpringCloud Nacos作为配置中心_第37张图片

SpringCloud Nacos作为配置中心_第38张图片

第二步:按照域名配置填写:

2.1 application.yml配置内容:
SpringCloud Nacos作为配置中心_第39张图片

2.2 创建配置文件:

SpringCloud Nacos作为配置中心_第40张图片
(1)进入test命名空间内(类似进入一个公司),创建一个配置文件:nacos-config-client-properties.yaml,组名TEST_GROUP

SpringCloud Nacos作为配置中心_第41张图片

nacos-config-client-properties.yaml配置文件内容:

config:
    info: 我是命名空间test的配置文件,属于TEST_GROUP组,版本1

(2)进入dev命名空间内(类似进入一个公司),创建一个相同的配置文件:nacos-config-client-properties.yaml,组名也相同,组名TEST_GROUP
SpringCloud Nacos作为配置中心_第42张图片
nacos-config-client-properties.yaml

config:
    info: 我是dev公司/命名空间的配置文件,我属于TEST_GROUP组,版本1

解释:相当于两家公司,一个是test公司,一个是dev公司,两家公司都有一个组叫TEST_GROUP组,并且该组内有相同的配置文件的名字nacos-config-client-properties.yaml,那只能通过公司名,(即命名空间)来区分了这个文件

2.3 修改bootstrap.yml配置文件:

SpringCloud Nacos作为配置中心_第43张图片
SpringCloud Nacos作为配置中心_第44张图片

切换命名空间的流水号后测试:发现成功读取到不同命名空间下的文件:

SpringCloud Nacos作为配置中心_第45张图片
SpringCloud Nacos作为配置中心_第46张图片

四、Nacos集群和持久化配置:

SpringCloud Nacos作为配置中心_第47张图片
SpringCloud Nacos作为配置中心_第48张图片

SpringCloud Nacos作为配置中心_第49张图片

vip:虚拟映射ip

SpringCloud Nacos作为配置中心_第50张图片
SpringCloud Nacos作为配置中心_第51张图片
SpringCloud Nacos作为配置中心_第52张图片
SpringCloud Nacos作为配置中心_第53张图片
SpringCloud Nacos作为配置中心_第54张图片

SpringCloud Nacos作为配置中心_第55张图片
SpringCloud Nacos作为配置中心_第56张图片

在这里插入图片描述

SpringCloud Nacos作为配置中心_第57张图片

SpringCloud Nacos作为配置中心_第58张图片
然后测试mysql存储的数据:

SpringCloud Nacos作为配置中心_第59张图片

SpringCloud Nacos作为配置中心_第60张图片

在这里插入图片描述

SpringCloud Nacos作为配置中心_第61张图片

下载nacos:
SpringCloud Nacos作为配置中心_第62张图片

拷贝文件到:
SpringCloud Nacos作为配置中心_第63张图片
集群配置步骤:

SpringCloud Nacos作为配置中心_第64张图片
SpringCloud Nacos作为配置中心_第65张图片
SpringCloud Nacos作为配置中心_第66张图片

SpringCloud Nacos作为配置中心_第67张图片

SpringCloud Nacos作为配置中心_第68张图片
SpringCloud Nacos作为配置中心_第69张图片

SpringCloud Nacos作为配置中心_第70张图片

SpringCloud Nacos作为配置中心_第71张图片

SpringCloud Nacos作为配置中心_第72张图片

SpringCloud Nacos作为配置中心_第73张图片
SpringCloud Nacos作为配置中心_第74张图片

在这里插入图片描述
SpringCloud Nacos作为配置中心_第75张图片
SpringCloud Nacos作为配置中心_第76张图片
cluster.conf内容:
SpringCloud Nacos作为配置中心_第77张图片

SpringCloud Nacos作为配置中心_第78张图片
第一步:
SpringCloud Nacos作为配置中心_第79张图片
第二步:
SpringCloud Nacos作为配置中心_第80张图片

SpringCloud Nacos作为配置中心_第81张图片

SpringCloud Nacos作为配置中心_第82张图片

弄一个备份:
SpringCloud Nacos作为配置中心_第83张图片
SpringCloud Nacos作为配置中心_第84张图片
SpringCloud Nacos作为配置中心_第85张图片

SpringCloud Nacos作为配置中心_第86张图片

你可能感兴趣的:(springcloud,spring,cloud,alibaba)