圖片查重從設計到實現(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
英文地址,請注明出處:http://en.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}…