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