Zookeeper基礎使用機制原理

Znode:

1、Znode既是路徑(目錄)也是信息(文件)

2、Znode有兩種分類:一分為臨時節點(會話生命周期)和永久節點;二分為普通節點和順序節點

?

Watch:

1、監聽與通知機制,可以在節點上監聽其本身(增、刪、改)或其子節點(增、刪)事件

2、代碼上通過exist、getData、getChildren注冊監聽,通過create、delete、setData可以觸發通知

?

一致性機制:

1、Single System Image,數據會被同步到所有節點,客戶端可以連接任一節點,獲取數據。數據同步到各個節點肯定需要一點時間,是最終一致性,所以對于類似轉賬的業務,不應直接去查,而應注冊監聽等待通知,才能保證數據一致性

2、Sequential Consistency,同時寫同一條記錄問題,Leader-Follower機制,寫請求都會路由到Leader,每個寫請求都會加一個數字標簽表明事務順序,寫請求按照順序執行(異步的分布式系統實現同步的效果)

?

應用:

Zookeeper最常用的定位是分布式協調服務,協調是一個比較寬泛的概念,按照官方文檔它其實可以有很多應用場景

統一命名空間 Name Service?

配置管理

集群管理 Group Membership – 檢測成員狀態即集群節點狀態

集群管理 Election – 集群選舉

分布式鎖

?

*分布式隊列 – 生產者消費者隊列

*Barriers (籬笆墻) - A barrier is a primitive that enables a group of processes to synchronize the beginning and the end of a computation.

*Two-phased Commit兩階段提交,通常用于分布式事務

*BookKeeper – 分布式日志流存儲

?

這些應用的實現原理都是用上面的znode和watch機制,如集群選舉,各個節點對應臨時順序節點,順序最小的為主;分布式鎖原理一模一樣,順序最小的節點獲取到鎖。

轉載于:https://www.cnblogs.com/yuzhengzhong/p/10095856.html

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

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

相關文章

JS ajax請求參數格式( formData 、serialize)

1 $("#importBtn").click(function(){2 if($("#conId").val() ""){3 alert("請填寫Id");4 return;5 }6 if($("#fromWhere").val() "…

【小工具分享】 - vscode注釋自動生成

參考 關閉文件頭部注釋 點擊設置 輸入fileheader搜索 關閉頭部注釋 "fileheader.customMade" : {"autoAdd": false }

Spring的bean實例化過程

以XmlBeanFactory為例,最簡單的取bean方式是: BeanFactory factory new XmlBeanFactory(new FileSystemResource("D:\\workspace\\JavaApplication2\\src\\javaapplication2\\spring\\beans.xml")); Car obj (Car)factory.getBean("c…

最全整理瀏覽器兼容性問題與解決方案(轉)

所謂的瀏覽器兼容性問題,是指因為不同的瀏覽器對同一段代碼有不同的解析,造成頁面顯示效果不統一的情況。在大多數情況下,我們的需求是,無論用戶用什么瀏覽器來查看我們的網站或者登陸我們的系統,都應該是統一的顯示效…

【算法】 - 滑動窗口

1. 題目鏈接 2. 分析 最多可以將K個值從0變成1,因此滑動窗口的限制條件: 0的數量(zeros)小于K,算法過程如下 有一個滑動窗口(slipper),每次都會從A中讀入一個數當讀入的數為0時,zeros當zeros的數量大于K時,會取出slipper首部的元素,當取值為0時zeros-- 總體代碼如下: var lo…

Springboot整合thymeleaf模板

Thymeleaf是個XML/XHTML/HTML5模板引擎,可以用于Web與非Web應用。 Thymeleaf的主要目標在于提供一種可被瀏覽器正確顯示的、格式良好的模板創建方式,因此也可以用作靜態建模。你可以使用它創建經過驗證的XML與HTML模板。相對于編寫邏輯或代碼&#xff0…

Java代碼輸出到txt文件(申請專利貼源碼的必備利器)

最近公司在申請專利,編寫不少文檔,項目的代碼量實在是過于龐大。如果一個一個的復制粘貼雖然能夠完成,但是對于程序員而言實在沒有這個必要。shell或者python就能解決這個問題。由于我個人對于shell和python不是非常熟練的情況下,…

【算法】 - 動態規劃 + 位運算

題目描述 思路1: 寫一個返回2進制中1數量的函數countOne遍歷0到num,對每一個數使用countOne,并將結果保存到res中返回 var countBits function (num) {let res new Array(num 1).fill(0);for (let i 0; i < num; i) {res[i] countOne(i.toString(2));}return res; };…

Spring配置AOP切入點execution詳解

例&#xff1a; execution (* com.sample.service…*. *(…)) 整個表達式可以分為五個部分&#xff1a; 1、execution():&#xff1a;表達式主體。 2、第一個*號&#xff1a;表示返回類型&#xff0c; *號表示所有的類型。 3、包名&#xff1a;表示需要攔截的包名&#xff…

Netty

1BS/CS? 2斷點續傳需要activeX,需要獨立客戶端有狀態,tomcat無狀態,或者Netty有狀態,可以斷點續傳 3Netty核心java nio性能比較高 4Jetty和Netty和dubbo區別? 5 轉載于:https://www.cnblogs.com/xinglongbing521/p/10105351.html

sympy科學計算器

SymPy庫常用函數 簡介 本文抄于https://www.cnblogs.com/baby123/p/6296629.html SymPy是一個符號計算的Python庫。它的目標是成為一個全功能的計算機代數系統&#xff0c;同時保持代碼簡 潔、易于理解和擴展。它完全由Python寫成&#xff0c;不依賴于外部庫。SymPy支持符號計算…

【異或運算】 - 交換2個數

1. 代碼 let a 3; let b 4; a a ^ b; b a ^ b; a a ^ b;2. 異或的性質 不同為1,相同為0(可以看做是無進制位的加法)交換律: a ^ b b ^ a;結合律: (a ^ b) ^ c a ^ (b ^ a);0 ^ x x;x ^ x 0; 3. 證明 下面證明1中的代碼 a 3 ^ 4;b (3 ^ 4) ^ 4 3 ^ 0 3;a (3…

Spring底層控制反轉解耦合(IOC)

簡單的例子解釋IOC控制反轉進行解耦合 一、相關概念 &#xff08;1&#xff09;解耦合 解耦合就是把程序中互相不相關或有限相關的模塊分割開來&#xff0c;把不同模塊互相之間的關系用接口進行準確定義&#xff0c;解耦前&#xff0c;兩個模塊之間共享所有信息&#xff1b; &…

Manacher算法學習筆記 | LeetCode#5

Manacher算法學習筆記 DECLARATION 引用來源&#xff1a;https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途&#xff1a;尋找一個字符串的最長回文子串時間復雜度&#xff1a;O(N)算法步驟&#xff1a; 1.添加特殊字符 由于回文串的長度可奇可偶&#xff0c;比如…

content-type對照表

轉載于:https://www.cnblogs.com/mxyr/p/9238329.html

【算法小積累】 - 提取非0數最右側的1

參考 - 69:49 const getRightOne num > {return num & (~num 1); };

解耦合

廣大程序猿同胞&#xff0c;經常會看到“解耦合”&#xff0c;也有很多人&#xff0c;會用這個詞來裝X&#xff0c;但是&#xff0c;實際真正能理解的人&#xff0c;并不多。接下來&#xff0c;帶大家深入淺出的走一遍&#xff0c;如何解耦合。 首先&#xff0c;我們要知道&am…

CentOS安裝和配置Rsync進行文件同步

Liunx系統實現文件同步不需要搭建FTP這類的工具&#xff0c;只需要按照Rsync配置下文件就可以。 本文以Centos7.0為例。 1. 首先關閉SELINUX&#xff08;不關閉無法同步&#xff0c;權限太高了&#xff09; vi /etc/selinux/config #編輯防火墻配置文件 #SELINUXenforcing #注釋…

【linux】 -設備名稱與文件目錄

參考 - 鳥哥的linux私房菜基礎篇 在linux系統中,每個設備都被當成一個文件來對待幾乎所有的硬件設備文件都在/dev這個目錄內 下面給出,常見設備和文件路徑的對應關系 設備設備在Linux中的文件名SCSI、SATA、USB磁盤驅動器/dev/sd[a-p]U盤/dev/sd[a-p] (與SATA相同)Virtio接口/…

數據結構開發(7):典型問題分析(Bugfix)

0.目錄 1.創建異常對象時的空指針問題 2.LinkList 中的數據元素刪除 3.LinkList 中遍歷操作與刪除操作的混合使用 4.StaticLinkList 中數據元素刪除時的效率問題 5.StaticLinkList 是否需要提供析構函數&#xff1f; 6.StLib 是否有必要增加多維數組類&#xff1f; 1.創建異常對…