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

Nacos配置管理

统一配置管理

 为什么需要Nacos进行统一配置管理?

在生产环境中有数十台甚至上百台服务器,我现在需要对这十几台甚至上百台服务器的配置文件进行修改,而且服务器中配置文件修改的内容可能是一样的,修改完配置文件后还需要对这些服务器进行重启,这样非常麻烦。

我现在希望不需要逐个配置文件去修改,只需要在一个配置文件,且修改后服务不需要重启,修改的配置文件能立即生效。这个就是配置的热更新,而实现这个功能就需要配置管理服务。

什么是配置管理服务?

配置管理服务记录微服务的核心配置,微服务启动的时候就会读取配置管理服务的配置,再与本地的配置结合作为一个完整的配置。

将来微服务有什么需要更新的配置,直接修改配置管理服务里面的配置即可,更新后无需重启服务立即生效,会自动通知微服务修改了哪些配置,实现热更新。

新建配置

Data ID:其实就是配置文件名,唯一;

                由三部分组成 【服务名】-【profile当前项目运行环境】【.】【后缀名】

                eg:userservice-dev.yaml、userservice-test.yaml

Group:组,默认就好无需修改;

配置格式:后缀名为 .yaml,那么这里就要选择 YAML;其它同理;

配置内容:统一配置的内容,将来做热更新的配置、经常变化的配置(类似开关类型的配置);并不是所有配置都有此需求,比如数据库地址配好一般都不需要改变,就不用配置到此处;

服务如何读取Nacos配置中心配置的内容呢 ?

1、服务启动后优先读取bootstrap.yml配置文件,在此文件中配置nacos地址;

2、bootstrap.yml配置文件优先级高于application.yml配置文件;

Nacos统一配置管理-配置步骤

 1、引入Nacos的配置管理客户端依赖

        <!-- Nacos的配置管理客户端依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>

2、在userservice中的resource目录添加一个 bootstrap.yml 文件,这个文件是引导文件,优先级高于application.yml配置文件;

注意:认真观察配置文件,由【服务名称-开发环境.后缀名】组成的名字就是你在Nacos配置中心配置的 Data ID;

spring:
  application:
    name: userservice #服务名称
  profiles:
    active: dev #开发环境,这里是dev
  cloud:
    nacos:
      server-addr: localhost:8848 #Nocas地址
      config:
        file-extension: yaml #文件后缀名

如何知道服务真的从Nacos配置中心中读取到配置了呢 

在userservice服务控制层,编写读取配置文件的代码,测试; 

 

将配置交给Nacos管理的步骤-总结 

1、在Nacos中添加配置文件

2、在微服务中引入nacos的config依赖

3、在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪些文件。

相关文章:

  • 【C进阶】第十篇——数据在内存中的存储
  • Qt实现全局鼠标事件监听器-Windows
  • 基于LEACH和HEED的WSN路由协议研究与改进(Matlab代码实现)
  • JDBC连接数据库详解~
  • 【Docker】解决Docker创建Tomcat容器实例后访问Tomcat主页时报HTTP状态404-未找到的错误
  • GitLab安装与卸载
  • Python编程 圣诞树教程 (附代码)程序员的浪漫
  • 冰雪旅游热开启!IU酒店与您畅游山水之间
  • 详解vue中watch的用法
  • CH36X系列接口芯片Linux系统开发库说明
  • 为什么char a[]的a不能用a=“hello”来赋值?
  • SpringBoot简单优雅实现图片上传功能(超详细)
  • SpringBoot整合Mybatis-Plus分页失效
  • 10.每天进步一点点---Python-Requests HTTP 请求库-2
  • 鸿蒙开发初体验以及遇到的几点坑
  • AI 实战篇 |基于 AI开放平台实现 【植物识别】 功能,成为行走的百科全书
  • 9 个神奇的 Python 技巧,让你的代码更优雅
  • Roson的Qt之旅 #136 Qt实现截图功能
  • MySQL 日志之 binlog 格式 → 关于 MySQL 默认隔离级别的探讨
  • 【OpenCV-Python】教程:4-7 BRIEF( Binary Robust Independent Elementary Features)特征
  • 以军证实空袭也门多个港口
  • 南宁一学校发生伤害案件,警方通报:嫌疑人死亡,2人受伤
  • “多规合一”改革7年成效如何?自然资源部总规划师亮成绩单
  • 马上评|文玩字画竞拍轻松赚差价?严防这类新型传销
  • 外交部:反对美方人士发表不负责任谬论
  • 秦洪看盘|交易新逻辑,银行股成A股稳定器