1、概述
1.1 簡介
Zookeeper是一個分佈式開源框架(Java語言編寫開源框架),是一個分佈式協調工具,提供了協調分佈式應用的基本服務,它向外部應用暴露一組通用服務 ,分佈式同步(Distributed Synchronization)、命名服務(Naming Service)、集羣維護(Group Maintenance)等,簡化分佈式應用協調及其管理的難度,提供高性能的分佈式服務。ZooKeeper自己能夠以單機模式安裝運行,不過它的長處在於經過分佈式ZooKeeper集羣(一個Leader,多個Follower),基於必定的策略來保證ZooKeeper集羣的穩定性和可用性,從而實現分佈式應用的可靠性。html
- 一、Zookeeper是爲別的分佈式程序服務的
- 二、Zookeeper自己就是一個分佈式程序(只要有半數以上節點存活,zk就能正常服務)
- 三、Zookeeper所提供的服務涵蓋:主從協調、服務器節點動態上下線、統一配置管理、分佈式共享鎖、統一名稱服務等
- 四、雖說能夠提供各類服務,可是zookeeper在底層其實只提供了兩個功能:
- 管理(存儲,讀取)用戶程序提交的數據(相似namenode中存放的metadata);
- 併爲用戶程序提供數據節點監聽服務;
1.2 Zookeeper集羣機制
Zookeeper集羣的角色: Leader 和 follower
只要集羣中有半數以上節點存活,集羣就能提供服務java
1.3 Zookeeper特性
- 一、Zookeeper:一個leader,多個follower組成的集羣
- 二、全局數據一致:每一個server保存一份相同的數據副本,client不管鏈接到哪一個server,數據都是一致的
- 三、分佈式讀寫,更新請求轉發,由leader實施
- 四、更新請求順序進行,來自同一個client的更新請求按其發送順序依次執行
- 五、數據更新原子性,一次數據更新要麼成功,要麼失敗
- 六、實時性,在必定時間範圍內,client能讀到最新數據
2、Zookeeper應用場景
- 命名服務(註冊中心) Dubbo註冊中心
- 分佈式配置中心(SpringCloud config. )動態管理配置文件信息
- 消息中間件事件通知(相似與發佈訂閱功能)
- Zookeeper分佈式事務( 全局協調者)
- Zookeeper實現分佈式鎖,
- Zookeeper能夠實現選舉策略(哨 兵機制)
- Zookeeper實現本地動態負載均衡(Dubbo服 務負載均衡原理)
消息中間集羣管理(Zookeeper )node
- 註冊中心都是集羣版本Consul、Eureka、 Zookeeper 、Redis
- 分佈式系統核心在於服務治理
【Zookeeper】應用場景概述服務器
3、Zookeeper數據結構
Zookeeper數據結構
4、Zookeeper安裝
【Zookerper】 安裝開啓app
5、Java操做Zookeeper
【Zookeeper】 在Java中的操做負載均衡
6、Zookeeper實現負載均衡
【Zookeeper】實現負載均衡原理框架
7、Zookeeper 分佈式鎖
【Zookeeper】分佈式鎖分佈式
8、Zookeeper實現服務Master選舉策略(哨兵機制)
【Zookeeper】實現哨兵機制(選舉策略)工具
9、Zookeeper 集羣搭建
【Zookeeper】集羣環境搭建
原文出處:https://www.cnblogs.com/haoworld/p/zookeeper-ji-chu-xue-xi-gai-lan-hui-zong.html