一、zookeeper的工作機制

zookeeper的工作機制

Zookeeper是分佈式服務架構,是apache hadoop的一個子項目,主要是用來解決分佈式應用中遇到的一下數據管理問題,如 集羣管理,統一命名服務,分佈式配置管理,分佈式消息隊列,分佈式鎖,分佈式通知協調等

Zookeeper 沒有具體的功能,他在大數據中的作用是協調大數據框架的,提供的是協調服務

Zookeeper的工作機制:
Zookeeper從設計角度來看,是一個基於觀察者模式設計的分佈式服務器管理框架,他負責存儲和管理數據,然後接受觀察者的註冊,一旦這些數據狀態發生改變,zookeeper就將負責通知已經在zookeeper上註冊的那些觀察者,做出相應的反應。
總而言之,zookeeper只需要做兩件事。
第一件事:存數據
第二件事: 通知

理解: 就是在學生和講師之間需要班主任溝通,約好的課程,但是因爲講師有事來不了,這時候需要班主任進行協調,並告知同學們,班主任的作用就是zookeeper的作用,

在實際中的應用:
  Server1    server2   server3

  Client1     client2    client3

三臺server,是一個集羣, 沒有zookeeper的時候,三個client會直接連接三個server,中間沒有任何東西,就是直連,但是當serverA 掛了之後,client1是不知道的,client1還是會連接serverA,但是serverA根本不會理client1,

如果我們加上zookeeper集羣之後,結構如下:
  Server1    server2   server3
             | 1、(服務端在啓動時去註冊信息,將自己的信息保存到zookeeper裏邊)
        zookeeper集羣(類似於中間件)
             | 2、(client從zookeeper獲取當前在線服務器列表,並註冊監聽)
  Client1     client2    client3

我們上邊說了,zookeeper幹兩件事,一件事是存數據,一件事是通知,三臺server,會把自己提供的服務和端口的信息,保存到zookeeper裏邊 ,

Client就是從zookeeper裏邊讀取數據,看哪臺能夠正常連接

**
1、服務端在啓動時去註冊信息,將自己的信息保存到zookeeper裏邊
2、client從zookeeper獲取當前在線服務器列表,並註冊監聽
3、server2掛了,
4、zookeeper會主動通知在在zk上註冊的主機,就是三臺client,告訴他們server2 已經掛了,這就是zk完成的第二件事
5、zk進行通知了之後,三個client,會再次向zookeeper進行註冊監聽,這是zookeeper提供服務的一個過程
**

Zookeeper=文件系統+通知機制 zookeeper就是通過這兩個來實現協調的功能,(文件系統就是存儲數據的)

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