# etcd_sync **Repository Path**: acaiblog/etcd_sync ## Basic Information - **Project Name**: etcd_sync - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-29 - **Last Updated**: 2025-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # etcd_sync - ETCD 数据同步工具 ## 项目简介 etcd_sync是一个用于全量和增量同步 etcd 数据的工具,支持前缀过滤、TLS 认证、断点续传等功能。该工具可以帮助用户在不同 etcd 集群之间同步数据,确保数据一致性。 ## 功能特性 - ✅ **全量同步**:支持完整同步源 etcd 集群数据到目标集群 - ✅ **增量同步**:基于 revision 的增量数据同步机制 - ✅ **前缀过滤**:支持指定 key 前缀进行数据同步 - ✅ **断点续传**:通过 checkpoint 机制实现断点续传功能 - ✅ **TLS 支持**:支持安全连接配置(CA 证书、客户端证书等) - ✅ **认证支持**:支持用户名密码认证方式 - ✅ **轮询同步**:定时轮询检测数据变更并同步 ## 项目结构 ``` etcd_sync/ ├── etcd_sync.py # 主程序文件 ├── etcd_sync.yaml # 配置文件 ├── Dockerfile # Docker 构建文件 ├── docker-compose.yaml # Docker Compose 配置 ├── generate_milvus_etcd_test_data.py # 测试数据生成脚本 ``` ## 安装与部署 ### 环境要求 - Python 3.8+ - Docker (可选) - etcd 集群 ### 本地安装 ```bash # 安装依赖 pip3 install etcd3 PyYAML tqdm # 复制 etcdctl 工具到系统路径 cp etcdctl /usr/local/bin/etcdctl ``` ### Docker 部署 ```bash # 构建镜像 docker build -t etcd_sync . # 或使用 docker-compose 启动测试环境 docker-compose up -d ``` ## 配置说明 配置文件 [etcd_sync.yaml](file://D:\code\script\etcd_sync\etcd_sync.yaml) 包含以下主要配置项: ```yaml prefix: "" # 同步的 key 前缀,留空则同步全部数据 checkpoint_file: "/var/lib/etcd_sync/revision.checkpoint" # checkpoint 文件路径 source: # 源 etcd 配置 host: "192.168.19.100" # 源 etcd 主机地址 port: 2379 # 源 etcd 端口 target: # 目标 etcd 配置 host: "192.168.19.100" # 目标 etcd 主机地址 port: 12379 # 目标 etcd 端口 retry_delay: 5 # 重试延迟时间(秒) max_retries: 3 # 最大重试次数 interval: 10 # 轮询间隔时间(秒) ``` ## 使用方法 ### 基本使用 ```bash # 全量同步 python3 etcd_sync.py --config etcd_sync.yaml --full-only # 增量同步(默认模式) python3 etcd_sync.py --config etcd_sync.yaml ``` ### Docker 使用 ```bash # 运行同步工具 docker run --rm etcd_sync python3 /app/etcd_sync.py --config /app/etcd_sync.yaml ``` ## 开发测试 项目包含测试数据生成脚本,可用于测试同步功能: ```bash # 生成测试数据 python3 generate_milvus_etcd_test_data.py ``` ## 注意事项 1. 确保源和目标 etcd 集群网络可达 2. 如需 TLS 连接,请正确配置证书路径 3. checkpoint 文件用于记录同步进度,建议持久化存储 4. 增量同步依赖 etcd 的 revision 机制 ## 日志说明 工具会输出详细的操作日志到控制台和 `/var/log/etcd_sync.log` 文件中,便于监控同步状态。