zookeeper框架

事務ID

Znode的創建刪除,更改內容等都是作為zookeeper的事務進行執行的。
對于每一個事務請求,zookeeper都會為其分配一個全局唯一的事務ID,從ID可以識別出事務的全局順序。

節點特性

czxid:create zxid,數據節點創建時的事務ID
mzxid:modified zxid,節點最后更新時的事務ID
ctime:create time
mtime:modified zxid
version :節點版本號
cversion:子節點版本號
aversion:acl版本號
enumChildren:子節點數量
pzxid:子節點修改的最后事務id

版本:表示對數據節點內容,子節點,acl的修改次數

當創建時都為0
每個數據節點都有三個版本:
version:當前數據節點內容的版本號
cversion:當前數據子節點的版本號
aversion:當前節點的acl版本號
版本的作用:充當樂觀鎖的寫入校驗。用CAS的方式。

Watcher:數據變更的通知

當客戶端在zookeeper上注冊后,會在客戶端生成回調函數,當觸發監聽任務時,zookeeper通知客戶端,客戶端執行watchermanager的回調函數。

客戶端的視角創建會話

以下是一次 ZooKeeper 會話創建的詳細過程,以客戶端的視角為主:

  1. 客戶端啟動: 客戶端應用啟動,并創建一個ZooKeeper客戶端實例。

  2. Watcher對象注冊: 客戶端可以注冊Watcher對象,用于在特定事件發生時接收通知。Watcher對象負責處理與會話相關的事件,如連接建立、節點變更等。

  3. 建立連接: 客戶端調用createSession()操作來連接到ZooKeeper集群。在這個過程中,客戶端選擇一個服務器進行連接。

  4. ClientCnxn: 一旦連接建立,將創建一個ClientCnxn對象,代表客戶端與服務器之間的連接。該對象處理底層的TCP連接和數據傳輸。

  5. Session ID 和密碼分配:如果是客戶端的第一次連接,或者之前的會話已經過期,服務器會為客戶端分配一個唯一的 Session ID。同時,服務器會生成與該 Session ID 相關聯的會話密碼(Session Password)。

  6. SendThread: 客戶端的SendThread負責向服務器發送請求,包括創建Session、讀取、寫入等操作。這個線程處理所有的網絡通信。

  7. EventThread: 客戶端的EventThread用于處理從服務器返回的事件(Event)。這包括連接狀態的改變、節點變更等。Watcher對象將在這里收到通知。

  8. Watch事件和通知: 如果客戶端注冊了Watcher對象,當與會話相關的事件發生時,服務器將生成相應的事件(Event),并通過EventThread傳遞給客戶端。這樣,客戶端能夠得知會話中的狀態變化。

  9. 心跳檢測: 會話期間,客戶端和服務器之間定期發送心跳以保持連接的活躍。

  10. 會話超時處理: 如果客戶端未在規定的會話超時時間內發送心跳,或者由于其他原因導致通信中斷,服務器將終止會話。此時,相關的Watcher對象將收到會話超時的通知。

服務器

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

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

相關文章

基于ZYNQ的PCIE高速數據采集卡的設計(一)

作為信息處理的第一步,數據采集的作用越來越重要。目前,數據采集已經在航 空、民用、軍事、醫療等領域得到廣泛應用。隨著相關技術的不斷發展,信號頻率越 來高,帶寬越來越大,使得數據采集技術逐漸向高速大數據的方向…

【python】優化docker鏡像體積

背景 測試腳本的最終所構成的鏡像體積偏大,項目提出整改 實現思路 1.測試基礎鏡像,更換為更小的 參見:python 多階段構建docker鏡像,有效減少鏡像大小 - 知乎 2.去掉實際未使用的依賴庫

幻獸帕魯專用服務器搭建之Linux部署配置教程

大家好我是飛飛,上一期我分享了Windows系統的幻獸帕魯服務器搭建教程。因為幻獸帕魯這游戲對服務器的配置有一定的要求,很多小伙伴就尋思用Linux系統搭建占用會不會小一點?有計算機基礎的小伙伴都知道Linux系統和Windows系統相比,…

【Linux】實時查看服務器信息

查看服務器CPU使用率 使用命令mpstat 1。這里的1表示每隔1秒更新一次CPU使用率。如果系統未安裝mpstat,可以通過安裝sysstat包來獲取它。 在基于Debian的系統(如Ubuntu)上,使用命令: sudo apt-get update sudo apt-…

JavaScript 數據類型詳解的教程

在JavaScript中,數據類型是非常重要的概念,了解數據類型有助于我們更好地操作數據以及編寫高效的代碼。本教程將詳細介紹JavaScript中的各種數據類型,包括基本數據類型和復雜數據類型。 基本數據類型 1. 數值(Number) 在JavaScript中&…

考研復試類比社團招新,無所謂“公平”,導師選誰都是他的權力

這篇文章是抖音和b站上上傳的同名視頻的原文稿件,感興趣的csdn用戶可以關注我的抖音和b站賬號(GeekPower極客力量)。同時這篇文章也為視頻觀眾提供方便,可以更加冷靜地分析和思考。文章同時在知乎發表。 我考研一戰的時候計算機考…

MySQL 主從復制配置指南

MySQL 主從復制配置指南 MySQL主從復制允許數據從一個MySQL數據庫服務器(主服務器)復制到一個或多個MySQL數據庫服務器(從服務器)。這是一種常用的數據冗余和備份方法,也可以用于負載均衡。 前提條件 主服務器和從服…

【詳識JAVA語言】面向對象程序三大特性之一:封裝

封裝的概念 面向對象程序三大特性:封裝、繼承、多態。而類和對象階段,主要研究的就是封裝特性。何為封裝呢?簡單來說 就是套殼屏蔽細節。 比如:對于電腦這樣一個復雜的設備,提供給用戶的就只是:開關機、通…

飛槳模型轉ONNX模型教程

文章目錄 飛槳模型轉ONNX模型教程1. ONNX簡介2. Paddle2ONNX安裝3. 獲取Paddle2ONNX模型庫4. 飛槳轉ONNX教程4.1 飛槳訓練模型導出為ONNX模型4.2 飛槳部署模型轉為ONNX模型4.3 驗證ONNX模型4.4 使用ONNX模型進行推理 5. 注意事項 飛槳模型轉ONNX模型教程 1. ONNX簡介 ONNX是一…

管理系統提升:列表頁構成要素,拒絕千篇一律

大家伙,我是大千UI工場,專注UI知識案例分享和接單,本期帶來B端系統列表頁的分享,歡迎大家關注、互動交流。 一、什么是列表頁 管理系統列表頁是指管理系統中用于展示和管理數據的頁面,通常以表格或列表的形式呈現。列…

【appium】APP元素操作Api、androidDriver操作Api

一、元素操作Api 主要是做斷言 text 1、click()——觸發當前元素的點擊事件 2、sendKeys(...)——輸入數據 3、clear()——清空內容 4、getAttribute() ——獲取屬性值 字符串類型屬性: content-desc(返回content-desc屬性值) text(返…

C語言中結構體成員訪問操作符的含義及其用法

1.直接訪問操作符 用法&#xff1a;結構體名.成員名。 含義&#xff1a;直接訪問結構體中的成員變量。 示例&#xff1a; #include<stdio.h> struct student {char name[20];int age; }; int main() {//定義了一個結構體數組arrstruct student arr[4] { {"cxk&q…

產品經理相關的學習網站

一、原型案例 AxureShop產品原型網&#xff1a; https://www.axureshop.com/ 人人都是產品經理&#xff1a;https://www.woshipm.com/ 二、如何找各類圖標、各類圖表 各類圖標&#xff1a; IconPark&#xff1b; 各類圖表&#xff1a;echarts.apache.org&#xff08;柱狀圖、餅…

深入淺出HTTP/2預檢請求(CORS Preflight Request)

前言 在現代Web開發中&#xff0c;跨域資源共享&#xff08;Cross-Origin Resource Sharing&#xff0c;簡稱CORS&#xff09;是一項關鍵技術&#xff0c;它允許瀏覽器在不同源之間安全地執行Ajax請求。當一個來自不同源的請求涉及到一些特殊 HTTP 頭部或者方法時&#xff0c;…

23端口登錄的Telnet命令+傳輸協議FTP命令

一、23端口登錄的Telnet命令 Telnet是傳輸控制協議/互聯網協議&#xff08;TCP/IP&#xff09;網絡&#xff08;如Internet&#xff09;的登錄和仿真程序&#xff0c;主要用于Internet會話。基本功能是允許用戶登錄進入遠程主機程序。 常用的Telnet命令 Telnet命令的格式為&…

有人吐槽:可視化大屏面向領導的設計,真相是這樣嗎?

某些老鐵的態度很極端&#xff0c;看到可視化大屏頁面就一口斷定&#xff0c;除了討好領導之外&#xff0c;屁用沒有。真相是這樣嗎&#xff1f;貝格前端工場嘗試給老鐵們分析下。 一、可視化大屏確實要面向領導&#xff0c;但不是討好領導 可視化大屏的設計需要考慮領導和管理…

整理的一些腦模板及節點的名稱

整理的一些腦模板及節點的名稱 前言模板簡介AAL90模板HOA112 模板 前言 自己看論文找的&#xff0c;因為有些數據集網站的確有點難找到模板的名稱等等。所以主要是看一些論文&#xff0c;因為有文獻&#xff0c;所以更有保障一些。當然也有一些在數據網站上比較容易找到所以一…

社交軟件----

story feed(聚合服務) 查 聯表查詢 表冗余字段java拼接user_service查詢用戶的avator和nick_namefollow_service查詢我是否關注item_service查詢我的in_box in_box如何設計redis zset 關注 數據庫設計 MySQL 根據ER圖設計表 create table follow(id bigint unsigned n…

小興教你做平衡小車-stm32程序開發(按鍵掃描)

文章目錄 1 單片機最小系統板按鍵原理圖介紹2 庫函數程序設計3 寄存器程序設計4 效果展示 1 單片機最小系統板按鍵原理圖介紹 從圖中看出單片機的PB12引腳接到了按鍵上。 根據按鍵的原理圖&#xff0c;可以分析得到&#xff0c;如果不按下按鍵的時候&#xff0c;引腳輸入的是…

【Linux】frp內網穿透詳細教程(簡單易懂)

frp內網穿透詳細教程&#xff08;簡單易懂&#xff09; 文章目錄 frp內網穿透詳細教程&#xff08;簡單易懂&#xff09;frp是什么&#xff1f;工作原理準備工作frp工具的使用第一步&#xff1a;下載安裝包第二步&#xff1a;公網部署frps第三步&#xff1a;內網部署frpc第四步…