图片查重从设计到实现(2)Milvus安装准备etcd介绍、应用场景及Docker安装配置

etcd作用、应用场景及Docker安装配置

在分布式向量数据库 Milvus 的架构中,etcd 扮演着至关重要的角色。Milvus 用于存储和管理海量向量数据,支持高效的相似性搜索等操作,而其分布式集群的正常运行高度依赖元数据的一致性和可靠性,etcd 正是承担这一关键任务的组件,负责存储 Milvus 集群的元数据,如集合信息、索引配置、分区详情等,确保 Milvus 各节点能协同工作。下面详细介绍 etcd 的相关内容:

一、etcd 的作用

etcd 是一个高可用、强一致性的分布式键值(key-value)存储系统,基于 Raft 一致性算法实现,主要作用如下:

  1. 分布式数据存储:以键值对形式存储数据,支持数据的增删改查,且所有节点数据实时一致,能为分布式系统提供统一的数据存储服务。

  2. 强一致性保证:通过 Raft 算法确保分布式环境下数据的一致性,即所有节点最终会看到相同的数据,这对于存储需要严格一致的关键信息,如集群状态、配置参数等非常重要。

  3. 高可用与容错:支持集群部署(通常为 3/5 节点),单个节点故障不会影响整体服务,系统会自动选举新主节点,保障服务的持续运行。

  4. Watch 机制:支持监听特定键或前缀的变化,当数据更新时能实时通知客户端,这一机制适合配置动态更新、服务发现等场景。在 Milvus 中,这一机制有助于各节点实时获取元数据的变化,保证集群的协同高效。

二、etcd 的应用场景

etcd 因强一致性和高可用特性,在分布式系统中应用广泛,典型场景包括:

  1. 容器编排与集群管理:最典型的是 Kubernetes(K8s),etcd 作为 K8s 的核心组件,用于存储集群的所有状态,如 Pod 配置、节点信息、服务规则等。

  2. 服务发现:在分布式系统中,服务实例的地址、端口等信息可存储在 etcd 中,客户端通过 etcd 动态获取服务地址,替代了传统的静态配置,提高了系统的灵活性和可扩展性。

  3. 配置中心:集中管理分布式应用的配置参数,如数据库地址、限流阈值等,通过 Watch 机制实现配置变更时的实时推送,无需重启服务,提升了系统的维护效率。

  4. 分布式锁:利用 etcd 的原子操作(如 Compare-and-Swap)实现分布式锁,解决多节点并发操作共享资源的冲突问题,保证操作的原子性和一致性。

  5. 元数据存储:如 Milvus 向量数据库,依赖 etcd 存储元数据(集合信息、索引配置等),确保分布式环境下元数据的一致性,这是 Milvus 集群能够正常、高效运行的重要保障。

三、Docker 安装配置 etcd

通过 Docker 安装 etcd 是较为简单的方式,适合单机测试或开发环境,也能满足 Milvus 开发环境对 etcd 的需求,具体步骤如下:

1. 拉取 etcd 镜像

etcd 官方提供了 Docker 镜像,可直接拉取最新版本:

docker pull quay.io/coreos/etcd:v3.5.5
2. 启动 etcd 容器(单机模式)

单机模式适合开发测试,需指定数据存储路径、客户端端口(2379)和集群通信端口(2380),并设置初始集群配置:

docker run -d \--name etcd \-p 2379:2379  # 客户端通信端口(供应用访问,Milvus将通过此端口连接etcd)-p 2380:2380  # 集群节点间通信端口(单机模式可忽略,但需映射)-e ALLOW_NONE_AUTHENTICATION=yes  # 允许无密码访问(开发环境)-e ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379  # 对外暴露的客户端地址-e ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379  # 监听客户端连接的地址-e ETCD_INITIAL_ADVERTISE_PEER_URLS=http://0.0.0.0:2380  # 集群内广播的节点地址-e ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380  # 监听集群节点连接的地址-e ETCD_INITIAL_CLUSTER=default=http://0.0.0.0:2380  # 初始集群配置(单机节点)-v /data/etcd:/bitnami/etcd  # 挂载本地目录持久化数据(避免容器删除后数据丢失,对于Milvus的元数据存储至关重要)bitnami/etcd:latest
  • 单机模式简化启动
docker run -d  --name etcd  -p 2379:2379  -p 2380:2380  -e ALLOW_NONE_AUTHENTICATION=yes   -v /data/etcd:/bitnami/etcd    quay.io/coreos/etcd:v3.5.5
  • 参数说明:

    • ALLOW_NONE_AUTHENTICATION=yes:关闭认证(生产环境需开启,见下方补充)。

    • 端口映射:2379是应用访问 etcd 的端口,Milvus 将通过该端口与 etcd 进行通信,2380用于集群节点间通信。

    • 数据持久化:-v /data/etcd:/bitnami/etcd将容器内数据目录映射到本地/data/etcd,防止数据丢失,这对于 Milvus 元数据的持久化存储非常重要。

3. 验证 etcd 运行状态

进入容器内部,使用etcdctl(etcd 命令行工具)测试:

# 进入容器
docker exec -it etcd /bin/bash
# 写入测试数据
etcdctl put mykey "hello etcd"
# 读取数据
etcdctl get mykey
# 预期输出:
# mykey
# hello etcd

若能正常读写,说明 etcd 安装成功,可满足 Milvus 对 etcd 的基本需求。
在这里插入图片描述

4. 生产环境补充配置(可选)
  • 开启认证:设置用户名密码,避免无权限访问,保障 Milvus 元数据的安全:
# 启动时添加认证参数(替换单机模式命令中的环境变量)-e ALLOW_NONE_AUTHENTICATION=no -e ETCD_ROOT_PASSWORD=your_strong_password  # 根用户密码

访问时需指定认证:etcdctl --user root:your_strong_password get mykey,Milvus 连接 etcd 时也需配置相应的认证信息。

  • 集群模式:生产环境需部署 3/5 节点集群,通过ETCD_INITIAL_CLUSTER配置多个节点地址(如node1=http://ip1:2380,node2=http://ip2:2380),以提高 etcd 的可用性和容错性,进而保障 Milvus 集群的稳定运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90527.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零弹窗干扰的贪吃蛇游戏,下载即玩

软件介绍 在寻找贪吃蛇游戏的过程中,我发现了一款PC端版本,无需登录即可直接使用,完全符合我的需求。 使用优势 这款软件最大的亮点在于完全免费,没有任何广告和弹窗干扰,支持完全离线运行,让用户能够专注…

excel2013VBA开发access mdb数据库系统的一点经验分享

最近,自己从网盘里重新下载了过去保存的vba开发资料,就顺手研究起了如何能通过excel203结合access 2013 mdb数据库系统开发个VBA小系统。过简单一说说了!接说干货经验分享吧,1、俺先在mdb数据库中建了一个有自动编号字段的数据表&…

我们能否承担微服务带来的复杂性和运维成本?

坦率地说,并非所有团队都应该,承担微服务带来的复杂性和运维成本。在做出决定前,我们必须进行自我评估。 以下是评估是否能承担微服务成本需要考虑的关键方面: 一、 复杂性带来的挑战 (Complexity Challenges):分布式系统固有复杂…

HCIP--MGRE实验

一、实验拓扑二、配置思路1、建立拓扑,配置IP,配置缺省路由是公网通畅2、路由器R1-R5,R2-R5,R3-R5之间都是串线链接,由于华为路由器默认的串线协议为PPP,因此根据实验要求,R1-R5,R2-R5之间直接进行单向认证&#xff0c…

数字孪生映射探索驱动的具身导航!MorphoNavi:面向对象映射的空地机器人导航

作者: Sausar Karaf, Mikhail Martynov, Oleg Sautenkov, Zhanibek Darush, Dzmitry Tsetserukou单位:俄罗斯斯科尔科沃科学技术研究院智能空间机器人实验室论文标题:MorphoNavi: Aerial-Ground Robot Navigation with Object Oriented Mappi…

统计与大数据分析与数学金融课程解析

CDA数据分析师证书含金量高,适应了未来数字化经济和AI发展趋势,难度不高,行业认可度高,对于找工作很有帮助。一、课程体系对比矩阵维度统计与大数据分析数学金融交叉领域数学基础概率论(90%)随机过程(85%)线性代数(100%)核心工具P…

整蛊小程序:关机程序(C语言)

整蛊小程序:关机程序(C语言) 跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学习内容,你的支持就是博主最大的动力。 目录 整蛊小程序:关机程序(C语言) 程序内容…

PHP框架之Laravel框架教程:1. laravel搭建

1. laravel搭建 本教程适合有php基础的同学学习 安装方式一: 使用 Laravel 安装器: 需要本地先安装PHP 和 Composer,这个自行安装下。 安装完成后验证方式: // 终端输入,就可以看到结果 php --version composer --vers…

HMC7044芯片配置(图文+解析+代码仿真)

详细代码及仿真源文件已同步上传至个人主页资源(原创不易,转载请注明出处) 目录 模块图 代码实现 时序图 仿真图 HMC7044介绍 一、概述 HMC7044是带有 JESD204B 接口的高性能、3.2 GHz、14 路输出抖动衰减器,提供 14 路低噪…

Dify开发教程笔记(一): 文件及系统参数变量说明及使用

开始 Copy page 定义“开始” 节点是每个工作流应用(Chatflow / Workflow)必备的预设节点,为后续工作流节点以及应用的正常流转提供必要的初始信息,例如应用使用者所输入的内容、以及上传的文件等。 配置节点在开始节点的设置页…

iOS 26,双版本更新来了

7 月 25 日,苹果终于给用户推送了 iOS 26 的首个公测版本。参与了公测版计划的小伙伴在软件更新页面选择 iOS 26 Public Beta 就能升级 iOS 26 的公测版。同时苹果还推送了 iOS 26 Beta 4 的第二个版本 。也就是说之前已经升级了 iOS 26 Beta 4 的小伙伴&#xff0c…

什么是JSON,如何与Java对象转化

JSON概念 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成。JSON 基于 JavaScript(ECMAScript(欧洲计算机协会制定的js规范)) 编程语言的一个子集&…

从零开始的云计算生活——第三十六天,山雨欲来,Ansible入门

目录 一.故事背景 二.Ansible简介 什么是Ansible? Ansible的特点 Ansible的架构 三.Ansible任务执行解析 ansible任务执行模式 ansible执行流程 ansible命令执行过程(重要) 四.Ansible配置解析 ansible的安装方式 ansible的程序结…

【6G新技术探索】AG-UI(Agent User Interaction Protocol) 协议介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。 博客内容主要围绕…

线性代数 下

文章目录十一、方程组解的结构和性质1、齐次线性方程组2、非齐次线性方程组十二、Ax0的基础解系十三、两个方程组的公共解十四、同解方程十五、求特征值、特征向量十六、判断A能否相似对角化十七、若A可以相似对角化,求P(Q)十八、二次型化标准型1、拉格朗日配方法2、…

Go语言实战案例-自定义队列结构

以下是《Go语言100个实战案例》中的 数据结构与算法篇 - 案例24:自定义队列结构 的完整内容,帮助初学者通过自定义结构体来实现队列的数据结构。🎯 案例目标实现一个自定义的队列结构,并提供常见的队列操作:入队&#…

Windows-WSL-Docker端口开放

本文介绍如何在局域网内访问Windows服务器端口,特别是针对已安装WSL环境并在其中运行Docker服务的情况。主要解决Docker服务向局域网开放端口的配置问题步骤一:配置转发当你的应用程运行在WSL中时,需要执行此步骤。在宿主机(windo…

面试知识梳理-vue3和vue2区别

vue3相对于vue2的优势 性能更好体积更小更好的ts支持(vue3 ts开发)更好的代码组织更好的逻辑抽离更多新功能(vue2其实也都能自己做出来) 更好的代码组织 Composition API 的革新 Vue 2 采用 ​​Options API​​,通过 …

栈的核心原理

1 栈的概念及结构栈是一种特殊的线性表,其特点是只允许在固定的一端进行插入和删除操作。进行操作的一端称为栈顶,另一端称为栈底。栈中的元素遵循后进先出(LIFO,Last In First Out) 原则。压\入\进栈(Push…

【无标题】暗物质暗能量——以下是用11维拓扑量子色动力学模型解释暗物质和暗能量的完整理论框架。

暗物质暗能量——以下是用11维拓扑量子色动力学模型解释暗物质和暗能量的完整理论框架。暗物质的拓扑本质 1. 跨桥零模振动理论 暗物质对应跨桥结构的基态振动模: math \phi_{\text{DM}} \frac{1}{\sqrt{6}} \sum_{f1}^6 \mathcal{B}_f^{(0)} $$ 其中 $\mathcal{B}…