Zookeeper的基本介紹

2021-08-22 16:13:24 字數 1584 閱讀 4827

一 .  zookeeper是什麼

zookeeper 是乙個分布式的,開源的分布式應用程式協調服務 (官方**:

二 . zookeeper能做什麼

1. 配置維護:在分布式系統中,一般會把服務部署到n臺機器上面,服務配置檔案都是相同的,如果配置檔案的配置選項發生了改變,那我們就得一台一台的去改變這些配置檔案。這時zk就起作用了,可以把zk當做乙個高階的可用的配置儲存器,把配置檔案的事情交給zk去管理,將集群的配置檔案拷貝到zk的某乙個節點上面,然後zk去監控所有分布式系統裡的配置檔案狀態,一旦發現現有配置檔案發生改變,那麼每台伺服器同步zk的配置檔案,zk同時保證同步操作的原子性,確保每個伺服器的配置檔案都能被更新。

2. 命名服務:在分布式應用中,通常需要乙個完整的命名規則,既能產生唯一的名稱又便於人們識別。zk就提供了這樣的一種服務,類似於網域名稱和ip之間的對應關係,網域名稱容易記住,通過名稱來獲取資源和服務的位址,提供者等資訊。

3. 分布式鎖:分布式程式分布在不同主機上的程序對互斥資源進行訪問時需要加鎖。理解:很多分布式系統有多個服務視窗,但是某個時刻只讓乙個服務去幹活,當這台伺服器出問題的時候鎖釋放,里脊fail over到另外的服務。舉例子,比如去某個地方****的時候,只能有乙個視窗對你服務,如果這個視窗的櫃員有急事走了,那麼系統或者經理給你指定另外乙個視窗繼續服務。

4. 集群管理:分布式集群中,經常會由於各種原因,比如硬體故障,網路問題,有些節點掛掉、有些節點加進來。這個時候機器需要感知到變化,然後根據變化做出對應的決策,那麼zk就實現了類似這種集群的管理。

5.  佇列管理:類似一些mq實現佇列的功能,這個不常用,不適合高效能的應用。

三. zookeeper的角色管理

領導者(leader):領導者負責進行投票的發起和決議,更新系統狀態。

學習者(learner):

跟隨者(follower):用於接受客戶請求並向客戶端返回結果,在選主過程中參與投票。

觀察者(observer):observer可以接受客戶端連線,將寫請求**給leader節點,但 observer不參加投票過程,只同步leader狀態。observer的目的是為了擴充套件系統,提高讀取速度。

客戶端(client):請求發起方。

四 . zookeeper設計原則

1. 最終一致性:客戶端(client)無論連線到哪個zk的節點,展示給他的檢視都是一樣的。

2. 可靠性:訊息message被到一台伺服器接受,那麼它到任何伺服器都被接受。

3. 實時性:zk保證在乙個時間間隔範圍內獲得伺服器的更新資訊,或者伺服器失效資訊。但是由於網路延時等一些其他原因,zk不能保證兩個客戶端同事得到跟新或者失效資訊。

4. 等待無關:慢的或者失效的客戶端(client)不得干預快速的client的請求,使得每個client都能有效的等待。

5. 原子性:更新只能成功或者失敗,沒有其他中間資訊。

6 順序性:包括全域性有序和偏序兩種:全域性有序是指如果再一台伺服器上訊息a在訊息b前發布,則在所有server上訊息a都將          在訊息b前被發布;偏序是指如果乙個訊息b在訊息a後被同乙個傳送者發布,a必將排在b前面。

Zookeeper基本知識介紹

1 什麼是zookeeper zookeeper是乙個分布式開源框架,提供了協調分布式應用的基本服務,它向外部應用暴露一組通用服務 分布式同步 distributed synchronization 命名服務 naming service 集群維護 group maintenance 等,簡化分布式...

ZooKeeper介紹概述

zookeeper簡介 在深入學習zookeeper之前,了解zookeeper的基礎知識是很有必要的。什麼是zookeeper zookeeper是面向分布式應用程式的分布式開源協調服務。為什麼要使用zookeeper 分布式應用程式提供了很多好處,但凡事有利就有弊。分布式應用中常出現競爭條件 死...

Zookeeper 基本 配置

zookeeper是乙個開源的分布式的,為分布式應用提供協調服務的apache專案 乙個基於觀察者模式設計的分布式服務管理框架 負責儲存和管理大家都關心的資料,然後接受觀察者的註冊資料發生變化,zookeeper負責通知已經在zookeeper上註冊的那些觀察者做出相應的反應 zookeeper 檔...