分布式應用程式協調服務 zookeeper

2021-10-02 07:51:26 字數 1745 閱讀 9026

一、zookeeper簡介

zookeeper是乙個分布式服務框架,是apache hadoop 的乙個子專案,它主要是用來解決分布式應用中經常遇到的一些資料管理問題,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等。

二、zookeeper的特性

2.1、順序一致性

從同乙個客戶端發起的事務請求,最終將會嚴格按照其發起順序被應用到zookeeper中。

2.2、原子性

所有事務請求的結果在集群中所有機器上的應用情況是一致的,也就是說要麼整個集群所有集群都成功應用了某乙個事務,要麼都沒有應用,一定不會出現集群中部分機器應用了該事務,而另外一部分沒有應用的情況。

2.3、單一檢視

無論客戶端連線的是哪個zookeeper伺服器,其看到的服務端資料模型都是一致的。

2.4、可靠性

一旦服務端成功地應用了乙個事務,並完成對客戶端的響應,那麼該事務所引起的服務端狀態變更將會被一直保留下來,除非有另乙個事務又對其進行了變更。

2.5、實時性

通常人們看到實時性的第一反應是,一旦乙個事務被成功應用,那麼客戶端能夠立即從服務端上讀取到這個事務變更後的最新資料狀態。這裡需要注意的是,zookeeper僅僅保證在一定的時間段內,客戶端最終一定能夠從服務端上讀取到最新的資料狀態。

三、zookeeper的作用

zookeeper功能非常強大,可以實現諸如分布式應用配置管理、統一命名服務、狀態同步服務、集群管理等功能,我們這裡拿比較簡單的分布式應用配置管理為例來說明。

假設我們的程式是分布式部署在多台機器上,如果我們要改變程式的配置檔案,需要逐台機器去修改,非常麻煩,現在把這些配置全部放到zookeeper上去,儲存在 zookeeper 的某個目錄節點中,然後所有相關應用程式對這個目錄節點進行監聽,一旦配置資訊發生變化,每個應用程式就會收到 zookeeper 的通知,然後從 zookeeper 獲取新的配置資訊應用到系統中。

四、集群角色

在zookeeper中,有三種角色:

leader

follower

observer

乙個zookeeper集群同一時刻只會有乙個leader,其他都是follower或observer。

五、會話(session)

session是指客戶端會話,在講解客戶端會話之前,我們先來了解下客戶端連線。在zookeeper中,乙個客戶端連線是指客戶端和zookeeper伺服器之間的tcp長連線。zookeeper對外的服務埠預設是2181,客戶端啟動時,首先會與伺服器建立乙個tcp連線,從第一次連線建立開始,客戶端會話的生命週期也開始了,通過這個連線,客戶端能夠通過心跳檢測和伺服器保持有效的會話,也能夠向zookeeper伺服器傳送請求並接受響應,同時還能通過該連線接收來自伺服器的watch事件通知。session的sessiontimeout值用來設定乙個客戶端會話的超時時間。當由於伺服器壓力太大、網路故障或是客戶端主動斷開連線等各種原因導致客戶端連線斷開時,只要在sessiontimeout規定的時間內能夠重新連線上集群中任意一台伺服器,那麼之前建立的會話仍然有效。

六、資料節點

在zookeeper中,可以分為持久節點和臨時節點兩類。

6.1、持久節點

所謂持久節點是指一旦這個znode被建立了,除非主動進行znode的移除操作,否則這個znode將一直儲存在zookeeper上。

6.2、臨時節點

臨時節點的生命週期跟客戶端會話繫結,一旦客戶端會話失效,那麼這個客戶端建立的所有臨時節點都會被移除。

分布式應用協調服務ZooKeeper

zookeeper是乙個開源的分布式的,為分布式應用提供協調服務的apache專案 zookeeper 檔案系統 通知機制 1 znode zookeeper資料模型的結構與linux檔案系統很像,整體上可以看作是一棵樹,樹的每個節點稱做乙個znode。每乙個znode預設能夠儲存1mb的資料,每個...

分布式協調服務Zookeeper使用教程

zookeeper 概述 zookeeper是一種分布式協調服務,用於管理大型主機。在分布式環境中協調和管理服務是乙個複雜的過程。zookeeper通過其簡單的架構和api解決了這個問題。zookeeper允許開發人員專注於核心應用程式邏輯,而不必擔心應用程式的分布式特性。zookeeper框架最初...

分布式應用程式互動之WebService

1 建立web應用程式然後新增web服務。2 web服務中需要被呼叫的方法需要加 webmethod特性 例如 webmethod description 輸出helloworld 500.19 檔案訪問許可權不夠。500.21 可能framework沒有完全安裝 cmd命令列中執行 windir ...