1. 程式人生 > >zookeeper工作原理簡單介紹

zookeeper工作原理簡單介紹

zookeeper的簡介

ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。
ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。
ZooKeeper包含一個簡單的原語集, [1] 提供Java和C的介面。
ZooKeeper程式碼版本中,提供了分散式獨享鎖、選舉、佇列的介面,程式碼在zookeeper-3.4.3\src\recipes。其中分佈鎖和佇列有Java和C兩個版本,選舉只有Java版本。(以上介紹來自百度百科)

工作原理圖解

在這裡插入圖片描述

工作原理簡介

  1. zookeeper伺服器相當於一箇中介,把生產者的服務提供給消費者。

  2. 生產者相當於提供服務的一方,生產者寫。好自己的服務後在zookeeper伺服器上註冊一下,會獲得一個帶有自己標識的key,然後zookeeper伺服器就能載入到這個生產者所提供的服務列表,當生產者的某臺伺服器宕機時,zookeeper伺服器會更新到,然後更新此生產者服務列表。

  3. 消費者就是使用某些服務的一方,消費者在zookeeper伺服器上註冊自己的資訊也會獲得一個key,當消費者需要生產者的某個服務是,就回去zookeeper獲取相應生產者的key然後載入到相應的服務列表。

當次消費者第二次訪問這個生產者的服務時,就會直接訪問生產者的伺服器。

關於消費者第二次及以後訪問某個生產者服務時發生的問題解析

消費者第二次及以後訪問某個生產者的服務時,是直接訪問生產者的伺服器的,但是當生產者的那臺伺服器正好宕機了,此時該怎麼辦呢?

解析 當生產的伺服器宕機後,消費者繼續請求那臺伺服器時,如果請求失敗,消費者會繼續請求第二次,當後續請求也失敗時,消費者就會請求zookeeper伺服器來更新此生產者所提供的服務列表。