【Zookeeper】结构、应用、安装部署与参数、客户端命令行操作、API应用、内部原理(选举机制、写数据、监听器)
一、Zookeeper入門
1、概述
分布式服務管理框架(存儲和管理數據)
Zookeeper=文件系統+通知機制
2、特點
主從集群
半數以上,正常工作
請求順序執行
數據更新具有原子性
3、數據結構
樹形結構,每個節點被稱為一個Znode
一個znode存儲1MB數據
4、應用場景
統一命名服務(域名而無需ip)
統一配置管理(集群節點配置一致,需要快速同步)
統一集群管理(監控節點的狀態變化)
服務器節點動態上下線(上下線通知)
軟負載均衡(記錄服務器訪問次數)
二、安裝
1、本地模式
修改配置zoo.cfg
啟動zk服務bin/zkServer.sh start / 停止bin/zkServer.sh stop
啟動客戶端bin/zkCli.sh / 退出quit
2、配置參數
tickTime =2000:通信心跳數
initLimit =10:LF初始通信時限
syncLimit =5:LF同步通信時限
dataDir:數據文件目錄+數據持久化路徑
clientPort =2181:客戶端連接端口
三、Zookeeper實戰
1、分布式安裝部署
添加與server對應的編號
進行同步xsync myid
修改配置server.4=hadoop104:2888:3888---交換信息的端口:選舉時通信的端口
啟動、查看狀態bin/zkServer.sh status
2、客戶端命令行操作
查看子節點:ls path
獲得節點的值:get path
遞歸刪除節點:deleteall 或 rmr /sanguo/shuguo
創建短暫節點: create -e /sanguo/wuguo "zhouyu"
3、API應用
創建客戶端zkClient
創建子節點zkClient.getChildren("/", true);
判斷節點是否存在:zkClient.exists("/eclipse", false);
4、監聽服務器節點動態上下線
任意一臺客戶端都能實時感知到主節點服務器的上下線
獲取子節點信息:client.getServerList();
四、Zookeeper內部原理
1、節點類型
持久化(順序)目錄節點
臨時目錄節點(按節點名稱順序編號)
2、Stat結構體
修改狀態會得到zxid形式的時間戳,也就是ZooKeeper事務ID
ctime 、mzxid 、mtime 、pZxid、cversion 、dataversion 、aclVersion 、ephemeralOwner、dataLength、numChildren
3、監聽器原理
main創建兩個線程connect和listener
4、Paxos算法
基于消息傳遞且具有高度容錯特性的一致性算法。
5、選舉機制
半數機制(奇數個節點,三五個)
6、寫數據流程
7、部署方式
(1)部署方式單機模式、集群模式
(2)角色:Leader和Follower
(3)集群最少需要機器數:3
總結
以上是生活随笔為你收集整理的【Zookeeper】结构、应用、安装部署与参数、客户端命令行操作、API应用、内部原理(选举机制、写数据、监听器)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.RabbitMQ系列之生产者
- 下一篇: linx6.7 update opens