Zookeeper01_必看
Zookeeper
- 解決單點故障
- 毫秒級處理
- 解決分布協(xié)調(diào)的問題
- Zookeeper 是 Google 的 Chubby一個開源的實現(xiàn),是 Hadoop 的分布式 ? 協(xié)調(diào) ?服務(wù) ?service
- 包含一個簡單的原語集,分布式應(yīng)用程序可以基于它實現(xiàn)
- 開源領(lǐng)域 首屈一指?
角色模型
?? ?集群狀態(tài)(可用/不可用)
?? ?主從分工
攘其外:
?? ?統(tǒng)一視圖
?? ??? ?會話session
?? ??? ?數(shù)據(jù)模型Znode
?? ??? ??? ?目錄結(jié)構(gòu)
?? ??? ??? ?節(jié)點類型
?? ?事件監(jiān)聽Watcher
原理:
?? ?原子消息廣播協(xié)議ZAB
?? ??? ?paxos
?? ??? ??? ?journalnode
?? ??? ??? ?sentinel
?? ??? ??? ?zookeeper ?? ZAB
?? ??? ?zxid ,myid:
?? ??? ?ZXID:epoch+ID
?? ?廣播模式原理
?? ?恢復(fù)模式原理:無主模型:zab: zxid ,myid
應(yīng)用場景
?? ?統(tǒng)一命名
?? ?配置管理
?? ?集群管理
- 大部分分布式應(yīng)用需要一個主控、協(xié)調(diào)器或控制器來管理物理分布的子進(jìn)程(如資源、任務(wù)分配等)
- 目前,大部分應(yīng)用需要開發(fā)私有的協(xié)調(diào)程序,缺乏一個通用的機(jī)制
- 協(xié)調(diào)程序的反復(fù)編寫浪費,且難以形成通用、伸縮性好的協(xié)調(diào)器
- ZooKeeper:提供通用的分布式鎖服務(wù),用以協(xié)調(diào)分布式應(yīng)用
Keepalived監(jiān)控節(jié)點不好管理
Keepalive 采用優(yōu)先級監(jiān)控
沒有協(xié)同工作
功能單一
Keepalive可擴(kuò)展性差?
Hadoop,使用Zookeeper的事件處理確保整個集群只有一個NameNode,存儲配置信息等.
HBase,使用Zookeeper的事件處理確保整個集群只有一個HMaster,察覺HRegionServer聯(lián)機(jī)和宕機(jī),存儲訪問控制列表等.?
在conf目錄下創(chuàng)建一個配置文件zoo.cfg, tickTime=2000 dataDir=/Users/zdandljb/zookeeper/data dataLogDir=/Users/zdandljb/zookeeper/dataLog clientPort=2181 initLimit=5 syncLimit=2 server.1=server1:2888:3888 server.2=server2:2888:3888 server.3=server3:2888:3888 創(chuàng)建myid文件tickTime:發(fā)送心跳的間隔時間,單位:毫秒
dataDir:zookeeper保存數(shù)據(jù)的目錄。
clientPort:客戶端連接 Zookeeper 服務(wù)器的端口,Zookeeper ?會監(jiān)聽這個端口,接受客 戶端的訪問請求。
initLimit: 這個配置項是用來配置 Zookeeper 接受客戶端(這里所說的客戶端不是用戶連 ?接 Zookeeper 服務(wù)器的客戶端,而是 Zookeeper 服務(wù)器集群中連接到 Leader 的 ?Follower 服務(wù)器)初始化連接時最長能忍受多少個心跳時間間隔數(shù)。當(dāng)已經(jīng)超過 5 個心跳的 ?時間(也就是 tickTime)長度后 Zookeeper 服務(wù)器還沒有收到客戶端的返回信息,那么表 ?明這個客戶端連接失敗??偟臅r間長度就是 5*2000=10 秒
syncLimit:這個配置項標(biāo)識 Leader 與 Follower 之間發(fā)送消息,請求和應(yīng)答時間長度,最 長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒
server.A=B:C:D:其 中 A 是一個數(shù)字,表示這個是第幾號服務(wù)器;B 是這個服務(wù)器的 ip ?地址;C 表示的是這個服務(wù)器與集群中的 Leader 服務(wù)器交換信息的端口;D 表示的是萬一 ?集群中的 Leader 服務(wù)器掛了,需要一個端口來重新進(jìn)行選舉,選出一個新的 Leader,而這 ?個端口就是用來執(zhí)行選舉時服務(wù)器相互通信的端口。如果是偽集群的配置方式,由于 B 都是 ?一樣,所以不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號?
zk:主從模式
----------------------------------------------------------------------------------------------------?
恢復(fù)模式:
- ZXID
- MYID
?
總結(jié)
以上是生活随笔為你收集整理的Zookeeper01_必看的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis03_基础命令操作
- 下一篇: Zookeeper02_zk集群搭建