Nacos服务配置

本文介绍Nacos配置中心的应用场景及配置流程,包括Spring Boot项目中配置文件的优先级、Nacos服务配置详解,以及如何通过Namespace、Group和DataID进行多环境、多微服务的配置管理。
摘要由CSDN通过智能技术生成

Nacos服务配置

准备工作

    1、导入相应的依赖

    2、准备两个配置文件bootstrap和application

    Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。

    springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application

    SpringBoot的配置文件bootstrap与application的作用以及区别

  1. 加载顺序上的区别

    bootstrap优先于application加载

  2. 适用于

    bootstrap适用于配置一些系统级别的参数;

    application适用于配置一些应用级别的参数;

  3. 适用SpringCloud Config配置中心时,需要在bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;

bootstrap.yml

# nacos服务配置
server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #服务注册中心地址
      config:
        server-addr: localhost:8848 #配置中心地址
        file-extension: yaml #指定yaml格式的配置
        #group: DEV_GROUP   #指定分组
        #namespace: 592bd9ee-eb97-49ad-984f-0b58ce56ae42
        
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}

application.yml

spring:
  profiles:
    active: dev		# 开发环境
    # active: test	  测试环境
    # active: info	  测试环境

@RefreshScope

    支持动态刷新配置

dataId的配置

在这里插入图片描述

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name{spring.profile.active}.${spring.cloud.nacos.config.file-extension}
在这里插入图片描述

所以拼接起来的dataid就为:nacos-config-client-dev.yaml

实际操作

在这里插入图片描述

在这里插入图片描述

Nacos服务配置中:Namespace、Group、DataID是什么关系

    问题1:

    实际开发中,通常一个系统会准备

    dev开发环境

    test测试环境

    prod生产环境

如何保证指定环境启动时服务能正确读取到Nacos上相应环境的配置文件呢?

    问题2:

    一个大型分布式微服务系统会有很多微服务子项目,每个微服务项目又都会有相应的开发环境、测试环境、预发环境、正式环境…

    那怎样对这些微服务配置进行管理呢?

解决

    最外层Namespace可以用于区分部署环境的,Group和DataID逻辑上区分两个目标对象。

在这里插入图片描述

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

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

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

    ervice微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的Service微服务起一个集群名称(HZ),给广州机房的Service微服务起一个集群名称(GZ),还可以尽量让同一个机房的微服务互相调用,以提升性能。最后的Instance,就是微服务实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值