zookeeper

zookeeper與keepalived的區(qū)別
zookeeper比keepalived更加復(fù)雜,可以將master的狀態(tài)返回
keeplived只是簡(jiǎn)單主備切換

zookeeper本身也是分布式的
zookeeper半數(shù)以上機(jī)器存活就可正常運(yùn)行
zk本質(zhì)功能:1.管理用戶提交的數(shù)據(jù) (用節(jié)點(diǎn)存儲(chǔ)(內(nèi)存數(shù)據(jù)庫(kù)))
2.為用戶程序提供節(jié)點(diǎn)監(jiān)聽
基于java 需要jre環(huán)境

特性:
1.一個(gè)leader多個(gè)follower組成的集群
2.全局一致性
3.分布式讀寫延届,更新請(qǐng)求轉(zhuǎn)發(fā)由leader實(shí)施
4.順序一致性
5.數(shù)據(jù)更新原子性(要么都成功,要么都失敻)
6.更新速度快

主要職責(zé)watch
1.配置維護(hù)
2.集群選主
3.動(dòng)態(tài)上下感知
4.主從監(jiān)聽

Zookeeper不能作為存儲(chǔ)的原因:存儲(chǔ)數(shù)據(jù)量小
一般配置為奇數(shù)臺(tái),企業(yè)中至少5臺(tái)翩瓜,原因是zookeeper的半數(shù)選舉機(jī)制受扳,用偶數(shù)臺(tái)效率不如奇數(shù)臺(tái)

主備切換

子機(jī)2個(gè) 狀態(tài) 分別為leader 和 follower
用戶通過zk訪問leader
如果active掛了,zk發(fā)生節(jié)點(diǎn)減少事件兔跌,通知給follower
follower收到消息后將自己變?yōu)閘eader

主節(jié)點(diǎn)選取

多個(gè)子機(jī)勘高,所有follower監(jiān)聽leader,存在servers
一旦zk主節(jié)點(diǎn)leader掛了坟桅,掃描servers华望,哪個(gè)節(jié)點(diǎn)id最大,選為新的主節(jié)點(diǎn)

分布式鎖

子機(jī)設(shè)為sequential znode
誰(shuí)訪問將寫入zk的locks仅乓,由于是znode 加入lock是遞增的赖舟,誰(shuí)最小誰(shuí)有訪問權(quán)限,當(dāng)訪問結(jié)束后夸楣,將自己從locks刪除
這樣可以保證永遠(yuǎn)只有一個(gè)子機(jī)訪問

zookeeper安裝

1.解壓
2.進(jìn)入文件宾抓,cd conf 修改配置文件
tickTime 心跳包時(shí)間
initLimit 初始化時(shí)間最大間隔心跳數(shù)
syncLimit 發(fā)送請(qǐng)求最大間隔心跳數(shù)
dataDir 默認(rèn)放再tmp中可能以后會(huì)被刪除,所以修改地址
clientPort 客戶端訪問端口號(hào)
server.1=ip:2888:3888 2888裕偿,3888一個(gè)用來監(jiān)聽心跳洞慎,一個(gè)監(jiān)聽選主,可以配置多個(gè),但最好奇數(shù)臺(tái)
wq
3.scp -r zookeeper/ root@ip:$pwd 將文件拷到另一個(gè)ip主機(jī)嘿棘,$pwd保存在相同路徑下
4.找到之前設(shè)置dataDir的路徑,echo server后的序號(hào) > dataDir后設(shè)置的文件名
5.進(jìn)入每個(gè)zk/bin下 ./zkserver.sh start
此處我們發(fā)現(xiàn)第二臺(tái)機(jī)器被設(shè)置為leader旭绒,原因是:1第一個(gè)開啟鸟妙,還沒有集群焦人,第二臺(tái)開啟,zk選主重父,由于第二臺(tái)的序號(hào)大花椭,所以被選為主機(jī),而之后的主機(jī)開啟雖然比第二臺(tái)大房午,但是已經(jīng)選主矿辽,所以,其它機(jī)器來都是follower

zk的數(shù)據(jù)也是遵循選舉的郭厌,每次我們獲取的數(shù)據(jù)袋倔,都是zk半數(shù)以上機(jī)器選主的結(jié)果

shell啟動(dòng)zk

如果有很多機(jī)器。折柠。去每個(gè)機(jī)器里啟動(dòng)明顯不靠譜宾娜,so在每個(gè)機(jī)器之間配好免密登陸,寫一個(gè)群起的腳本
vi zkstart.sh

#!/bin/bash
for host in ip1 ip2 ...
do
echo "$host is starting"
##因?yàn)閦k是java程序扇售,而當(dāng)腳本直接啟動(dòng)時(shí)沒有java環(huán)境所以添加source /etc/profile
ssh $host "source /etc/profile;/path/zk/bin/zkServer.sh start"
done

esc :wq!
chmod u+x zkstart.sh
./zkstart.sh 群起成功

paxos一致性算法

zk的半數(shù)選舉的前塔,保持?jǐn)?shù)據(jù)一致性的核心算法

zk的節(jié)點(diǎn)znode

zk可以創(chuàng)建子目錄,子目錄下還可以存儲(chǔ)子目錄承冰,但是節(jié)點(diǎn)只能存儲(chǔ)很少的數(shù)據(jù)华弓,所以只用來存儲(chǔ)核心的關(guān)鍵數(shù)據(jù),如機(jī)器狀態(tài)困乒。一個(gè)節(jié)點(diǎn)不能超過1M,最好幾十K就ok

znode的類型

1.短暫 ephemeral 斷開連接自動(dòng)刪除 常用
2.永久 斷開連接不刪除

znode目錄節(jié)點(diǎn)類型

默認(rèn)為persistent

  1. persistent
  2. persistent_sequential (持久序列,如f00000001)
  3. ephemeral
  4. ephemeral_sequential
znode順序標(biāo)識(shí)

節(jié)點(diǎn)設(shè)置順序標(biāo)識(shí)后寂屏,父節(jié)點(diǎn)會(huì)維護(hù)子節(jié)點(diǎn)單調(diào)遞增創(chuàng)建
通過順序標(biāo)識(shí),易得事件發(fā)生順序

zk客戶端使用

cd /zk/bin/ 進(jìn)入bin
執(zhí)行 ./zkcli.sh 連接本機(jī)zk
執(zhí)行 ./zkcli.sh server ip 連接其它機(jī)器zk

常用命令
  1. ls /顯示根目錄
  2. create path "data" 創(chuàng)建節(jié)點(diǎn) path為路徑 data為值
  3. get path 查看節(jié)點(diǎn)
    包含 節(jié)點(diǎn)值
    czxid 創(chuàng)建事務(wù)id
    ctime 創(chuàng)建時(shí)間
    mzxid 修改事務(wù)id
    mtime 修改時(shí)間
    pzxid
    cversion 創(chuàng)建版本號(hào) 如果創(chuàng)建子節(jié)點(diǎn) ++
    dataVsersion 數(shù)據(jù)版本 如果set修改節(jié)點(diǎn)數(shù)據(jù)++
    aclvsersion 權(quán)限版本
    ephemeralOwn 臨時(shí)擁有
    dataLength 數(shù)據(jù)長(zhǎng)度
    numChildren 子節(jié)點(diǎn)數(shù)
  4. set path "data" 修改節(jié)點(diǎn)值
  5. watch 監(jiān)聽
    原理:當(dāng)客戶端發(fā)送watch命令時(shí)顶燕,會(huì)將自己的ip和等待端口(socket)發(fā)送給zkServer
    zkServer收到信息后會(huì)在內(nèi)部創(chuàng)建監(jiān)聽者信息凑保,當(dāng)監(jiān)聽信息發(fā)生改變后,zk給監(jiān)聽者發(fā)送信息
    監(jiān)聽只會(huì)觸發(fā)一次涌攻,如果要重復(fù)監(jiān)聽欧引,在觸發(fā)監(jiān)聽回調(diào)時(shí)再次監(jiān)聽
    5.1 get path watch 監(jiān)聽節(jié)點(diǎn)數(shù)據(jù)是否發(fā)生變化
    5.2 ls path watch 監(jiān)聽目錄下子節(jié)點(diǎn)是否發(fā)生變化
    5.3 stat path watch 監(jiān)聽節(jié)點(diǎn)的狀態(tài)是否發(fā)生變化
注:一臺(tái)機(jī)器的zk節(jié)點(diǎn)創(chuàng)建,修改恳谎,會(huì)同時(shí)同步到其它機(jī)器
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末芝此,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子因痛,更是在濱河造成了極大的恐慌婚苹,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸵膏,死亡現(xiàn)場(chǎng)離奇詭異膊升,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)谭企,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門廓译,熙熙樓的掌柜王于貴愁眉苦臉地迎上來评肆,“玉大人,你說我怎么就攤上這事非区」贤欤” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵征绸,是天一觀的道長(zhǎng)久橙。 經(jīng)常有香客問我,道長(zhǎng)管怠,這世上最難降的妖魔是什么淆衷? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮排惨,結(jié)果婚禮上吭敢,老公的妹妹穿的比我還像新娘。我一直安慰自己暮芭,他們只是感情好鹿驼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辕宏,像睡著了一般畜晰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瑞筐,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天凄鼻,我揣著相機(jī)與錄音,去河邊找鬼聚假。 笑死块蚌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的膘格。 我是一名探鬼主播峭范,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼瘪贱!你這毒婦竟也來了纱控?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤菜秦,失蹤者是張志新(化名)和其女友劉穎甜害,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體球昨,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尔店,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闹获。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡期犬,死狀恐怖河哑,靈堂內(nèi)的尸體忽然破棺而出避诽,到底是詐尸還是另有隱情,我是刑警寧澤璃谨,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布沙庐,位于F島的核電站,受9級(jí)特大地震影響佳吞,放射性物質(zhì)發(fā)生泄漏拱雏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一底扳、第九天 我趴在偏房一處隱蔽的房頂上張望铸抑。 院中可真熱鬧,春花似錦衷模、人聲如沸鹊汛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)刁憋。三九已至,卻和暖如春木蹬,著一層夾襖步出監(jiān)牢的瞬間至耻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工镊叁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尘颓,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓晦譬,卻偏偏與公主長(zhǎng)得像疤苹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蛔添,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容