SpringCloud.Nacos Config-服务配置

本文介绍了在微服务架构下配置管理的挑战,提出了配置中心的概念,列举了常见的配置中心如Apollo、Disconf和SpringCloud Config。接着详细讲述了使用Nacos作为配置中心的入门步骤,包括在微服务中引入Nacos依赖,配置数据ID和数据源,以及配置文件的优先级。进一步探讨了Nacos Config的深入应用,如动态配置加载和配置共享,强调了命名空间、配置分组和配置集等核心概念。最后讨论了bootstrap上下文在Spring Cloud中的作用和配置选择。
摘要由CSDN通过智能技术生成

一、服务配置中心介绍

1. 微服务框架下,配置文件的问题

  1. 配置文件相对分散:在一个微服务架构下,配置文件会随着微服务的增多变得越来越多,而且分散在各个微服务之中,不好统一管理
  2. 配置文件无法区分环境:微服务项目可能有多个环境,例如:测试环境、预发布环境、生产环境,每个环境所使用的配置理论上都是不同的,一旦需要修改,就需要我们取各个微服务下手动维护,十分困难
  3. 配置文件无法实时更新:我们修改了配置文件之后,必须重新启动微服务才能使配置生效,这对一个正在运行的项目来说是很不友好的

2. 配置中心的思路

  1. 首先把项目中各种配置全部都放到一个集中的地方进行统一的管理,并提供一套标准的接口
  2. 当各个服务需要获取配置的时候,就来配置中心的接口来拉取自己的配置
  3. 当配置中心中的各种参数有更新的时候,也能通知到各个服务器实时的过来进行同步最新的信息,使之动态更新

image-20230817163301713

3. 常见的配置中心

  • Apollo
    Apollo是由携程开源的分布式配置中心,特点有很多,比如:配置更新之后可以实时生效,支持灰度发布功能,并能对所有的配置进行版本管理、操作审计等功能,提供开放平台API,并且资料也能写的很详细
  • Disconf
    Disconf是由百度开源的分布式配置中心,他是基于Zookeeper来实现配置变更后实时通知和生效的
  • SpringCloud Config
    这是SpringCloud中带的配置中心组件,他和Spring是无缝集成的,使用起来非常方便,并且他的配置储存支持Git,不过他没有可视化的操作界面,配置的生效也不是实时的,需要重启或去刷新
  • Nacos
    这是SpringCloud Alibaba技术栈中的一个组件,前面我们已经使用他做过注册中心,其实他也集成了服务配置功能,我们可以 直接使用他作为服务配置中心

二、Nacos Config入门

使用nacos作为配置中心,其实就是将nacos当做一个服务端,将各个服务看成是客户端,我们将各个微服务的配置文件统一存放在nacos上,然后各个微服务从nacos上拉取配置即可

  1. 搭建nacos环境【使用现有的nacos环境即可】

  2. 在微服务公共模块中引入nacos的依赖

    注:由于配置中心的依赖在多个微服务中都需要引入,所以此处建议将其加入到common公共模块中

    <dependency>
    	<groupId>com.alibaba.cloud</groupId>
    	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    
  3. 在微服务service-product中添加nacos config的配置

    注:

    1. 不能使用原来的application.yml作为配置文件,而是新建一个bootstrap.yml作为配置文件

    2. 在bootstrap和application数据项相同时,bootstrap中的配置不会被覆盖

    配置文件优先级
    bootstrap,properties -> bootstrap.yml -> application.properties -> application.yml

    spring:
      application:
        name: service-product
      cloud:
        nacos:
          config:
            server-addr: localhost:8848 # nacos的服务端地址
            file-extension: yml # 配置文件格式
      profiles:
        active: dev # 环境标识 dev开发环境 test测试环境 prod生产环境
    

    说明:之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分,在 Nacos Spring Cloud 中,dataId 的完整格式如下:

    ${prefix}-${spring.profiles.active}.${file-extension}
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值