4.5 zookeeper分散式
一、 為什麼需要zookeeper
大部分分散式應用需要一個主控、協調器或控制器來管理物理分佈的子程式(如資源、任務分配等)
大部分應用需要開發私有的協調程式,缺乏一個通用的機制
協調程式的反覆編寫浪費,且難以形成通用、伸縮性好的協調器
zookeeper可以提供通用的分散式鎖服務,用以協調分散式應用,它是一個開源的分散式應用協調服務
分散式:多臺計算機、它們之間通過網路進行通訊、它們有共同的目標
協調服務
二、 zookeeper簡介
-
zookeeper是什麼
zookeeper是Google的Chubby一個開源的實現,是hadoop的分散式協調服務
它包含一個簡單的原語集,分散式應用程式可以基於它實現同步服務,配置維護和命名服務等
將zookeeper翻譯過來,是動物園管理員,可以想象,它是來管理動物的(大象、蜜蜂、小豬)
它的架構如下圖: -
zookeeper能幫我們做什麼
分散式系統協調:多個節點一起完成一個動作
叢集成員管理
分散式鎖
選主
分散式事務
釋出/訂閱(釋出者將資料釋出到zk的一個或一系列節點,訂閱者進行資料訂閱,當有資料變化時,可以及時得到資料的變化通知)
負載均衡
3. zookeeper的特性
zookeeper是簡單的
zookeeper是富有表現力的
zookeeper是高可用的
zookeeper是鬆耦合的互動方式
zookeeper是一個資源庫
4. zookeeper的資料模型
層次化的目錄結構,命名符合常規檔案系統規範
每個節點在zookeeper中叫做znode,並且其有一個唯一的路徑標識
znode中的資料可以有多個版本,比如某一個路徑下存有多個資料版本,那麼查詢這個路徑下的資料就需要帶上版本
節點不支援部分讀寫,而是一次性完整讀寫
其中每個單獨的長方形我們稱之為一個節點(znode),節點(znode)的全名稱是整個目錄名,比如Seerver1節點的全節點名稱是/NameService/Server1
5. zookeeper的下載地址
http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.9/
三、 zookeeper的安裝
- 手動安裝(單機、偽分散式、完全分散式)
解壓,建立一個data目錄,一個log目錄
在data目錄建立myid檔案,server1寫1
複製配置檔案為zoo.cfg,編輯配置檔案,需要修改的位置如下:
dataDir=/xxx/data
dataLogDir=/xxx/log
server.1=主機名:2888:3888
配置環境變數
zkServer.sh start即可開啟 - cloudera manager自動化部署
四、 zookeeper基本概念 - 叢集角色
Leader客戶端提供讀和寫服
Follower提供讀服,所有寫服都需要轉交給Leader角色,參與選舉
Observer提供讀服,參選舉過程,一般是了增強zk叢集的讀請求併發能力 - 會話
zk的客戶端與zk的服端之間的連線
通過心跳檢測保持客戶端連線的存活
接收來自服端的watch事件通知
設定超時時間 - zookeeper節點型別
persistent:persistent節點不和特定的session繫結,不會隨著建立該節點的session的結束而消失,而是一直存在,除非該節點被顯式刪除
ephemeral:ephemeral節點是臨時性的,如果建立該節點的session結束了,該節點就會被自動刪除,ephemeral節點不能擁有子節點,雖然ephemeral節點與建立它的session繫結,但只要該該節點沒有被刪除,其他session就可以讀寫該節點中關聯的資料,使用-e引數指定建立ephemeral節點
sequence:嚴格的說,sequence並非節點型別中的一種,sequence節點既可以是ephemeral的,也可以是persistent的,建立sequence節點時,ZooKeeper server會在指定的節點名稱後加上一個數字序列,該數字序列是遞增的,因此可以多次建立相同的sequence節點,而得到不同的節點,使用-s引數指定建立sequence節點 - 版本
Version:當前Znode的版本
Cversion:當前Znode的子節點的版本
Aversion:當前Znode的ACL(訪問控制)版本 - watcher
作用於Znode節點
watcher設定後,一旦觸發一次就會失效,如果需要一直監聽,就需要再次註冊
多種事件通知:資料更新,子節點狀態等
學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928
清華團隊帶你實戰區塊鏈開發
掃碼獲取海量視訊及原始碼 QQ群:721929980
相關文章
- 【zookeeper】zookeeper分散式鎖分散式
- 分散式-zookeeper分散式
- zookeeper分散式鎖分散式
- ZooKeeper 分散式鎖分散式
- 十九、Redis分散式鎖、Zookeeper分散式鎖Redis分散式
- Zookeeper-分散式鎖分散式
- Zookeeper(5)---分散式鎖分散式
- zookeeper 分散式鎖解析分散式
- 分散式技術-Zookeeper概述分散式
- Zookeeper — 本地完全分散式 搭建分散式
- 分散式鎖之Zookeeper實現分散式
- 分散式鎖實現(二):Zookeeper分散式
- ZooKeeper分散式鎖的實現分散式
- 【分散式】Zookeeper應用場景分散式
- 6 zookeeper實現分散式鎖分散式
- Zookeeper簡介及分散式概念分散式
- ZooKeeper分散式專題(一) -- zookeeper安裝以及介紹分散式
- 分散式系列七: zookeeper簡單用法分散式
- 【分散式】Zookeeper的Leader選舉分散式
- ZooKeeper分散式任務排程中心分散式
- 搭建分散式系統的利器:ZooKeeper分散式
- 搞懂分散式技術3:初探分散式協調服務zookeeper分散式
- 分散式服務框架 Zookeeper -- 管理分散式環境中的資料分散式框架
- 二十二、zookeeper實現分散式鎖分散式
- 基於zookeeper的分散式配置中心(一)分散式
- zookeeper 分散式鎖的原理及實現分散式
- 基於 Zookeeper 的分散式鎖實現分散式
- Zookeeper分散式鎖實現Curator十一問分散式
- 分散式鎖實現方案(REDIS,ZOOKEEPER,TAIR)分散式RedisAI
- 使用redis和zookeeper實現分散式鎖Redis分散式
- centOS安裝zookeeper3.4.6(分散式模式)CentOS分散式模式
- 分散式協調服務zookeeper總結分散式
- 分散式 ZooKeeper 快取用法例項教程分散式快取
- 分散式系統理論基礎8:zookeeper分散式協調服務分散式
- ZooKeeper 分散式鎖 Curator 原始碼 04:分散式訊號量和互斥鎖分散式原始碼
- ZooKeeper分散式專題(二) -- zookeeper應用場景及資料模型分散式模型
- 關於分散式鎖原理的一些學習與思考-redis分散式鎖,zookeeper分散式鎖分散式Redis
- 基於zookeeper實現分散式配置中心(二)分散式