nacos批量导入

一、概述

由于mysql做了迁移,需要批量修改mysql地址。但是java应用有上百个,修改起来很麻烦。

所以需要通过调用nacos api接口来进行批量修改

二、批量导入

下载修改

点击某个命名空间,下载所有配置

 然后会得到文件nacos_config_export_20250221143024.zip

将里面的文件解压出来,使用vscode编辑器批量替换。

批量修改

这里使用python脚本,调用nacos api接口,批量修改。

新建目录write_nacos

mkdir -p write_nacos

目录结构如下:

./
├── dev
│   └── mid
│       └── application.yaml
└── start.py

说明:

dev目录是分组名

mid目录是中间相关的,里面存放具体的应用配置

核心是start.py,内容如下:

# !/usr/bin/python3
# -*- coding: utf-8 -*-
import requests
import os

NACOS_SERVERS = "http://192.168.10.1:8848"


def write_nacos(directory,namespace,group):
    for root, dirs, files in os.walk(directory):
        for file in files:
            # print(file)
            file_path = os.path.join(root, file)
            # print(file_path)

            with open(file_path, mode="r", encoding="utf-8") as f:
                content = f.read()

                data = {
                    "tenant": namespace,
                    "dataId": file,
                    "group": group,
                    "content": content,
                    "type": "yaml",
                }

                url = NACOS_SERVERS + "/nacos/v1/cs/configs"
                response = requests.post(url, data=data)
                # print(response)

                status_code = response.status_code
                # print(status_code,type(status_code))
                if status_code == 200:
                    print("%s执行成功" % file)
                else:
                    print("%s执行失败" % file)


directory = "dev/mid"
namespace = "dev-mid"
group = "dev"


write_nacos(directory,namespace,group)

注意修改nacos server地址

修改directory,namespace,group

运行脚本

python3 start.py

输出:

application.yaml执行成功

最后进入nacos页面,查看配置是否修改成功。

### Nacos 文件上传配置 #### 创建并准备Nacos环境 为了在Nacos中进行文件上传的配置,首先需要创建合适的存储路径以及复制必要的配置文件。具体操作如下: - 使用命令`mkdir -p /mydata/nacos/conf/`来建立用于保存Nacos配置文件的目录结构[^1]。 #### 将Spring Boot应用连接至Nacos作为配置中心 为了让Spring Boot应用程序能够利用Nacos管理其配置信息,在项目里需引入特定依赖项以便支持这一功能。这可以通过Maven构建工具完成,向`pom.xml`添加以下片段实现: ```xml <dependencies> <!-- 配置文件使用nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>nacos版本</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> </dependencies> ``` 此部分确保了Spring Boot能识别来自Nacos服务器上的远程配置,并将其应用于启动过程中读取的基础设置文件之前[^5]。 #### 在Nacos控制台发布配置 对于想要上载到Nacos的任何配置文件(比如YAML或Properties),应当通过Web界面手动输入或者批量导入的方式加入到对应的命名空间下。特别需要注意的是,当本地采用`bootstrap.yml`形式时,则要求Nacos内的对应配置同样保持`.yml`格式;反之亦然——即遵循相同的数据ID后缀规则以保证正确解析与加载[^4]。 例如,假设有一个名为`config-client-a`的应用程序希望将自己的`application.yml`迁移到Nacos平台之上,那么就需要按照上述指导原则执行相应步骤,从而使得该应用可以从集中式的配置仓库获取最新的参数设定而无需再单独维护一份副本于各个实例之中[^2]。 #### 实际案例展示 考虑这样一个场景:存在一个微服务架构下的多个子模块共享同一套全局性的属性定义(如数据库链接字符串)。此时就可以借助像Nacos这样的分布式配置管理系统来进行统一管理和分发。开发者只需一次修改即可同步更新所有关联的服务节点所使用的最新版配置集,极大地提高了运维效率和服务治理水平[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值