zookeeper Curator(5):集群架構和集群搭建

文章目錄

      • 一、集群架構:Leader-Follower 模式
      • 二、核心機制:ZAB 協議
      • 三、Leader 選舉機制
      • 四、集群部署要點
      • 五、優勢與挑戰

Zookeeper 集群是一個由多個 Zookeeper 服務實例組成的分布式協調服務系統, 通過奇數個節點(通常 3、5、7 個)的協作,提供高可用性、容錯性和數據一致性,適用于分布式環境下的配置管理、命名服務、分布式鎖等場景。以下從架構、核心機制、選舉機制、數據模型、應用場景及部署要點六個方面展開介紹:

一、集群架構:Leader-Follower 模式

  • 角色分工
    • Leader:唯一處理所有寫請求的節點,通過 ZAB 協議(Zookeeper Atomic Broadcast)將數據變更同步至 Follower 節點,確保全局數據一致性。
    • Follower:處理客戶端讀請求,參與 Leader 選舉,并在選舉中投票。當 Leader 故障時,Follower 通過投票選出新 Leader。
    • Observer(可選):擴展讀取負載,不參與投票,適合高并發讀場景。
  • 節點數量:通常為奇數(如 3、5、7),以保證在部分節點故障時仍能通過多數派(quorum)機制維持服務可用性。

tips:后續詳細介紹Follower和Observer的區別和關系

二、核心機制:ZAB 協議

  • 原子廣播:確保所有寫操作按順序執行,要么全部成功,要么全部失敗。
  • 崩潰恢復:當 Leader 故障時,通過選舉產生新 Leader,并同步最新數據至所有節點,保證最終一致性。
  • 數據一致性:每個節點保存相同數據副本,客戶端無論連接哪個節點,讀取的數據均一致。

三、Leader 選舉機制

  • 選舉觸發條件
    • 集群初始化啟動。
    • Leader 節點崩潰或與集群失去連接。
  • 選舉規則
    1. EPOCH 優先:每個 Leader 任期的代號,EPOCH 大的節點直接勝出。
    2. 事務 ID(ZXID)次之:EPOCH 相同時,ZXID 大的節點勝出(ZXID 標識服務器狀態變更,數值越大表示數據越新)。
    3. 服務器 ID(SID)兜底:ZXID 相同時,SID 大的節點勝出(SID 為節點唯一標識,如 server.1server.2)。
  • 選舉過程示例
    • 假設集群有 5 個節點(SID 1-5),初始時 SID 3 為 Leader。
    • 若 SID 3 和 5 故障,剩余節點啟動選舉,SID 4 發起投票但因票數不足(需半數以上,即 3 票)無法當選。
    • 最終,SID 3 恢復或新節點加入后,通過 ZXID 或 SID 比較選出新 Leader。

四、集群部署要點

  1. 環境準備
    • 至少 3 臺服務器,確保低延遲、高帶寬網絡連接。
    • 安裝 JDK 8+,關閉防火墻或開放 2181(客戶端端口)、2888(Follower 與 Leader 通信)、3888(選舉端口)。
  2. 配置文件(zoo.cfg)
    tickTime=2000          # 心跳間隔(毫秒)
    initLimit=10           # Follower 初始連接 Leader 的超時時間(tickTime 倍數)
    syncLimit=5            # Follower 同步 Leader 數據的超時時間
    dataDir=/data/zookeeper # 數據快照目錄
    clientPort=2181        # 客戶端連接端口
    server.1=192.168.1.1:2888:3888  # 節點 1 配置
    server.2=192.168.1.2:2888:3888  # 節點 2 配置
    server.3=192.168.1.3:2888:3888  # 節點 3 配置
    
  3. 節點標識(myid)
    • dataDir 目錄下創建 myid 文件,內容為節點編號(如 123),與 zoo.cfg 中的 server.X 對應。
  4. 啟動與驗證
    • 依次啟動各節點:./zkServer.sh start
    • 檢查狀態:./zkServer.sh status,正常應顯示 1 個 Leader 和多個 Follower。
    • 使用客戶端測試:./zkCli.sh -server 192.168.1.1:2181,執行 ls / 查看根節點。

五、優勢與挑戰

  • 優勢
    • 強一致性:通過 ZAB 協議保證數據最終一致。
    • 高可用性:奇數節點設計容忍部分節點故障。
    • 輕量級:適合高并發讀場景(如配置中心)。
  • 挑戰
    • 寫性能瓶頸:寫操作需同步至多數節點,密集寫入時可能成為瓶頸。
    • 運維復雜:需監控網絡分區、腦裂等問題。
    • 依賴網絡:節點間通信延遲影響性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89369.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89369.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89369.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

道可云人工智能每日資訊|浦東啟動人工智能創新應用競賽

道可云人工智能&元宇宙每日簡報(2025年7月1日)訊,今日人工智能&元宇宙新鮮事有: 江城模境工信部人工智能大模型公共服務平臺(武漢)上線運行 2025年6月27日,光谷人工智能創新大會在湖北…

Python元組的遍歷

一、前言 在 Python 中,元組(tuple) 是一種非常基礎且常用的數據結構,它與列表類似,都是有序的序列,但不同的是,元組是不可變的(immutable),一旦創建就不能修…

矩陣的條件數(Condition Number of a Matrix)

文章目錄 矩陣的條件數(Condition Number of a Matrix)📌 定義🧮 常見形式:2-范數下的條件數🔍 條件數的意義🧠 實際意義舉例💻 Python 示例(NumPy)&#x1f…

1 Studying《Computer Architecture A Quantitative Approach》1-4

目錄 Preface 1 Fundamentals of Quantitative Design and Analysis 1.1 Introduction 1.2 Classes of Computers 1.3 Defining Computer Architecture 1.4 Trends in Technology 1.5 Trends in Power and Energy in Integrated Circuits 1.6 Trends in Cost 1.7 Depe…

Reactor Hot Versus Cold

這段文字詳細解釋了 Reactor 中 熱發布者(Hot Publisher) 和 冷發布者(Cold Publisher) 的區別,并通過示例展示了它們的行為差異。以下是對其含義的總結和解釋: 1. 冷發布者(Cold Publisher&…

OpenCV CUDA模塊設備層-----逐通道最小值比較函數min()

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 OpenCV 的CUDA并行計算模塊(cv::cudev)中的一個設備端內聯函數,用于在CUDA核函數中對兩個uchar2類型像素值進…

proteus實現stm32按鍵控制LED燈流水燈方向

一、新建工程 1、工程命名 2、選擇工程存儲位置 3、默認下一步 4、默認下一步 5、選擇沒有固件項目,下一步 二、器件放置并連線 1、點擊左邊工具欄中運放的形狀的符號 2、再點擊‘P’,搜索器件 3、搜索器件并放置連線 按鍵控制LED需要的器件有&#…

華為云Flexus+DeepSeek征文 | 讓運維更智能:Chaterm AI終端工具與華為云ModelArts Studio深度集成指南

華為云FlexusDeepSeek征文 | 讓運維更智能:Chaterm AI終端工具與華為云ModelArts Studio深度集成指南 引言一、ModelArts Studio平臺介紹華為云ModelArts Studio簡介ModelArts Studio主要特點 二、Chaterm介紹Chaterm簡介Chaterm主要特點 三、安裝Chaterm工具下載C…

湖北理元理律師事務所債務解法:從法律技術到生活重建

數據透視: 2023年武漢法院受理債務糾紛案11.4萬件,其中37%因不當還款規劃導致債務雪球效應。 一、債務危機的法律歸因 通過分析1200例債務咨詢案例,發現三大共性法律認知盲區: 擔保責任誤判 某企業主為朋友擔保200萬&#xff0…

小程序學習筆記:加載效果、上拉加載與節流處理

在微信小程序開發過程中,優化用戶體驗是非常重要的一環。今天我們就來分享如何在小程序中實現加載提示效果、上拉觸底加載下一頁數據以及對上拉觸底事件進行節流處理,讓你的小程序更加流暢和高效。 一、添加 loading 提示效果 在小程序中,當…

計算機網絡:【socket】【UDP】【地址轉換函數】【TCP】

一.socket 1.1socket接口 它返回的是一個文件描述符。創建socket文件描述符(TCP/UDP,客戶端服務器) ? socket()打開一個網絡通訊端口,如果成功的話,就像 open()一樣返回一個文件描 述符; ? 應用程序可以像讀寫文件一樣用 read/write 在網絡上收發數據; ? 如果 socket()調用…

機器人軌跡跟蹤控制與動力學模型詳解

1. 機器人控制的本質:通過關節扭矩執行軌跡 機器人控制的核心目標是讓機器人關節精確跟蹤期望軌跡 ( q d , q ˙ d , q d ) (q_d, \dot{q}_d, \ddot{q}_d) (qd?,q˙?d?,q?d?)。為此,控制器需根據當前狀態 ( q , q ˙ ) (q, \dot{q}) (q,q˙?)計…

智能辦公與科研革命:ChatGPT+DeepSeek大模型在論文撰寫、數據分析與AI建模中的實踐指南

隨著人工智能技術的快速發展,大語言模型如ChatGPT和DeepSeek在科研領域的應用正在為科研人員提供強大的支持。這些模型通過深度學習和大規模語料庫訓練,能夠幫助科研人員高效地篩選文獻、生成論文內容、進行數據分析和優化機器學習模型。 ChatGPT和Deep…

運營商場景下的實時脫敏方案:PB 級日志流的分布式處理架構

在數字化浪潮中,運營商積累了海量數據,涵蓋用戶信息、通信記錄、業務運營數據等。這些數據不僅是運營商業務運營的關鍵資產,也是創新服務、精準營銷的核心驅動力。然而,隨著數據量呈指數級增長,運營商每日需處理 PB 級…

docker+n8n的工作流中無法使用本地ollama服務的問題

使用docker創建n8n服務后,工作流中不想用大模型付費API測試,想用本地大模型來跑,剛好電腦上裝了ollama,就試了下添加ollama節點來替代大模型付費API,結果就遇到了以下問題 ollama正常運行中 但是工作流會卡在這&…

通過交互式可視化探索波動方程-AI云計算數值分析和代碼驗證

波動方程是一個基本的數學模型,它描述了各種類型的波(包括機械波、聲波、電磁波和流體波)如何通過不同的介質傳播,這使得它對于物理學、工程學和其他科學學科中聲學、光學、醫學成像和電信等領域的預測和設計都至關重要。 波動方程…

10授權

目錄 本節大綱 一、權限管理 1. 認證 2. 授權 二、授權核心概念 三、權限管理策略 1. 基于 URL 權限管理 權限表達式 2. 基于 方法 權限管理 EnableGlobalMethodSecurity 四、基本用法 五、原理分析 六、實戰 1. 簡介 2. 庫表設計 3. 創建 springboot 應用 本節…

線性規劃模型

線性規劃算是數學建模中最基礎的模型了,其典型特征就是線性和有限資源,即在一組線性約束條件下,求解一個線性目標函數的最大值或最小值問題: 其中x 是決策變量向量,c 是目標函數系數向量,a 和 b 分別是約束…

華為云Flexus+DeepSeek征文|體驗華為云ModelArts快速搭建Dify-LLM應用開發平臺并創建知識庫大模型工作流查詢數據庫數據

華為云FlexusDeepSeek征文|體驗華為云ModelArts快速搭建Dify-LLM應用開發平臺并創建知識庫大模型工作流查詢數據庫數據 什么是華為云ModelArts 華為云ModelArts ModelArts是華為云提供的全流程AI開發平臺,覆蓋從數據準備到模型部署的全生命周期管理&am…

WPF中Style和Template異同

在WPF(Windows Presentation Foundation)中,Style和Template是兩個核心概念,用于控制UI元素的外觀和行為,但它們的職責和使用場景有明顯區別。以下是詳細分析: 一、基本概念 1. Style(樣式&am…