1.1 什么是zookeeper
- Zookeeper是一個分布式的、開源的分布式應用程式協調服務,是Google的Chubby一個開源的實作,是Apache Hadoop的一個子專案,主要是用來解決分布式應用中經常遇到的一些資料管理的問題,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等,
- 它是一個為分布式應用聽過一致性協調服務的中間件
1.2 zookeeper提供了什么
- zookeeper=檔案系統+監聽通知機制,
- 檔案系統:zookeeper維護一個類似檔案系統的樹樁資料結構,每個子目錄項都被稱為znode(目錄節點),和檔案系統一樣,我們能夠自由的增加、洗掉znode,且znode是可以存盤資料的,
- zookeeper為了保證高吞吐和低延遲,在記憶體中維護了這個樹狀的目錄結構,這種特性使得zookeeper不能用于存放大量的資料,每個節點的存盤資料上限為1M,
- 有四種型別的znode:
- Persistent -持久化目錄節點:客戶端與zookeeper斷開連接后,該節點依舊存在
- Persistent_SEQUENTIAL-持久化順序編號目錄節點:客戶端與zookeeper斷開連接后,該節點依舊存在,只是zookeeper給該節點名稱進行順序編號
- ephemeral-臨時目錄節點:客戶端與zookeeper斷開后,該節點被洗掉
- Ephemeral_sequential-臨時順序編號目錄節點:客戶端與zookeeper斷開后,該節點被洗掉,只是zookeeper給該節點名稱進行順序編號
- 監聽通知機制:客戶端注冊監聽(watcher事件)它關心的目錄節點,當目錄節點發生變化(資料更改、被洗掉、子目錄節點增加洗掉)時,zookeeper會通知客戶端,
1.3 zookeeper用途
- 分布式應用配置管理
- 統一命名服務
- 狀態同步服務
- 集群管理,保證集群中資料的強一致性
- 分布式鎖,分布式環境中不同行程之間爭奪資源,類似于多執行緒中的鎖
- 分布式佇列:資料發布與訂閱
- zookeeper集群leader選舉:即master節點選舉,主節點down掉后,從節點就會接手作業,并且保證這個節點是唯一的,從而保證集群是高可用的
1.4 zookeeper的特性
- 一致性:資料一致性,資料按照順序分批入庫
- 原子性:事物要么成功要么失敗
- 單一視圖:客戶端連接集群中的任意zk節點,資料都是一致的
- 可靠性:每次對zk的操作狀態都會保存在服務端
- 實時性:客戶端可以讀取到zk服務端的最新資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/22740.html
標籤:大數據
下一篇:這句話是錯在哪了
