当前位置: 首页 > article >正文

SpringCloud 入门(3)—— Nacos配置中心

上一篇:SpringCloud 入门(2)—— 跨服务调度-CSDN博客


Nacos是阿里巴巴开源的服务发现与配置管理基础设施,旨在帮助开发者更轻松地构建云原生应用。它提供了一组简单易用的特性集,支持动态服务发现、配置管理和服务管理,适用于微服务架构和云原生应用环境。

1.nacos如何去定位一个具体的配置文件呢?

即:namespace、group、dataid.

1、通过namespace、group找到具体的环境和具体的项目。

2、通过dataid找到具体的配置文件,dataid有三部分组成

比如:content-service-dev.yaml配置文件  由(content-service)-(dev). (yaml)三部分组成

content-service:第一部分,它是在application.yaml中配置的应用名,即spring.application.name的值。

dev:第二部分,它是环境名,通过spring.profiles.active指定

Yaml: 第三部分,它是配置文件 的后缀,目前nacos支持properties、yaml等格式类 

导入依赖

        <!--将应用程序的配置从本地文件迁移到外部配置中心,实现配置的集中管理和动态刷新。-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

54a22230d3194beba26237b574e25326.png

 此时就可以将本地的配置,如mysql连接的配置,交由nacos管理(注意复制上去时不要掉了spring

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://124.70.208.223:3306/xcplus_content?serverTimezone=UTC&useUnicode=true&useSSL=false
    username: root
    password: root
logging:
  config: classpath:log4j2-dev.xml
server:
  servlet:
    context-path: /content
  port: 63040

a0397cae9e3b408bb2da3d1cdab4adb0.png

 本地只需要保留这些配置,用户指定运行环境和nacos地址


#微服务配置
spring:
  application:
    name: content-api # 微服务名称
  cloud:
    nacos:
      server-addr: 124.70.208.223:8085
      discovery:
        namespace: dev  # Nacos 服务管理的命名空间,用于隔离不同环境的服务
        group: xuecheng-plus-project  # Nacos 服务发现的组名,用于进一步隔离服务
      config:
        namespace: dev  # Nacos 配置管理的命名空间,用于隔离不同环境的配置
        group: xuecheng-plus-project  # Nacos 配置管理的组名,用于进一步隔离配置
        file-extension: yaml  # Nacos 配置文件的扩展名,这里指定为 YAML 格式
        refresh-enabled: true  # 是否启用配置的动态刷新功能
  profiles:
    active: dev # 指定当前环境为开发环境

部署完成后重新运行程序,依旧生效

2.公共配置

  • shared-configs 适用于多个应用都需要的一些通用配置,例如 日志配置。

在我们的项目中,有一些公共的配置,在任何模块中可能都会用到,我们可以将他单独提取出来。如:日志信息

7624ee18c8184cdcbc8bcd5b52f0b401.png

 使用shared-configs属性,引用该配置

spring:
  application:
    name: content-service
  cloud:
    nacos:
      server-addr: 124.70.208.223:8085
      config:
        namespace: dev
        group: xuecheng-plus-project
        file-extension: yaml
        refresh-enabled: true
        shared-configs:
          - data-id: logging-${spring.profiles.active}.yaml
            group: xuecheng-plus-common
            refresh: true
  profiles:
    active: dev

 3.扩展配置

extension-configs: 适用于需要为特定应用添加额外配置的情况,例如某些特殊的功能配置或环境变量。

extension-configs与shared-configs作用一样,语义不同

spring:
  application:
    name: content-api # 微服务名称
  cloud:
    nacos:
      server-addr: 124.70.208.223:8085
      discovery:
        namespace: dev  # Nacos 服务管理的命名空间,用于隔离不同环境的服务
        group: xuecheng-plus-project  # Nacos 服务发现的组名,用于进一步隔离服务
      config:
        namespace: dev  # Nacos 配置管理的命名空间,用于隔离不同环境的配置
        group: xuecheng-plus-project  # Nacos 配置管理的组名,用于进一步隔离配置
        file-extension: yaml  # Nacos 配置文件的扩展名,这里指定为 YAML 格式
        refresh-enabled: true  # 是否启用配置的动态刷新功能
        extension-configs:
          - data-id: logging-${spring.profiles.active}.yaml
            group: xuecheng-plus-common
            refresh: true

4.配置文件优先级

默认情况下,各配置文件 的优先级:项目应用名配置文件 > 扩展配置文件  > 共享配置文件 > 本地配置文件。

为了方便,我们一般会在nacos中配置本地优先

#配置本地优先
spring:
 cloud:
  config:
    override-none: true

 abbf5324c848431e803e830c22069ae1.png


http://www.kler.cn/a/448968.html

相关文章:

  • 【Mac】安装 PaddleOCR
  • 开发手札:CameraRTS精准性优化
  • 如何使用vscode解决git冲突
  • Chrome 关闭自动添加https
  • lodash常用函数
  • FreeSWITCH实现多人电话会议功能
  • 短视频矩阵系统种类繁多,应该如何对比选择?
  • 使用Python实现智能家居控制系统:开启智慧生活的钥匙
  • 【Linux】资源隔离机制 — 命名空间(Namespace)详解
  • Python实战:基于表单的暴力破解——以Pikachu靶机系统为例
  • vue中使用echarts做一个基础可滚动的折线图及dataZoom滚动配置项
  • SQL,生成指定时间间隔内的事件次序号
  • Hadoop完全分布式环境部署
  • malloc 分配大堆块(128KB)的一次探索
  • **Adversarial Demonstration Attacks on Large Language Models**
  • 【Leetcode】855. 考场就座
  • 小程序 - 模拟时钟
  • Echarts连接数据库,实时绘制图表详解
  • 微服务拆分 示例:黑马商城拆分商品服务模块
  • YOLOv9-0.1部分代码阅读笔记-dataloaders.py
  • C语言(一)——初识C语言
  • Django 视图中使用 Redis 缓存优化查询性能
  • 初识C语言之二维数组(下)
  • npm install vue-router失败解决办法
  • 4.2V单节锂电池充电电路(TP4056)、USB与锂电池切换电路分享
  • Github优质项目推荐(第九期)