Zookeeper 概述 & 架構 & 特性

目錄

1.概述

2.架構

3.特性


概述

ZK作爲一個分佈式協調服務的框架。主要是爲了解決分佈式集羣中應用系統的一致性問題,例如怎麼避免多用戶同時對數據操作從而造成髒寫髒讀。本質上來說是一個分佈式的小文件存儲系統(官方建議這裏的小文件每個不要超過1MB)。提供基於類似於文件系統的目錄樹方式的數據存儲,並且可以對節點進行有效的管理。維護和監控你存儲數據的狀態,從而達到基於數據的集羣管理。

架構

在這裏插入圖片描述

Leader保證事物處理的順序性,對於集羣中所有事物的操作需要統一轉發給Leader來執行。

Follower處理非事物性的請求,如果遇到事物請求就轉發給Leader,同時Follower參加Leader的選舉。另外,針對訪問量比較大的ZK集羣,增加Observer角色。

Leader選舉機制解讀:https://blog.csdn.net/aubekpan/article/details/87254980

Observer:觀察ZK集羣上數據的狀態變化,並將這些狀態同步,如果是非事務的請求可以單獨處理。並且不參與投票只提供非事物服務,通常用於在不影響集羣事物處理能力的前提下,提升集羣的非事務處理能力,從來增加併發的讀請求。

特性

1、全局數據一致性:每個服務器都保存一份相同的數據副本,客戶端不管連到哪臺展現的數據都是一致的。

2、可靠性:如果消息被其中一臺服務器接受,那麼將被所有的服務器接受。

3、順序性:分全局有序和偏序兩種,全局有序的情況是如果一個節點上消息A在消息B前發佈,則所有節點的上消息A在消息B前發佈。偏序是指如果一個消息B在消息A後被同一個客戶端發佈,A必將排在B前面。

4、數據更新原子性:一次數據更新要麼成功(半數以上節點成功),要麼失敗,不存在中間狀態。

5、實時性:ZK保證客戶端將在一個時間間隔範圍內獲得服務器更新信息,或者服務器失敗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章