【28期】ZooKeeper面試那些事兒
閱讀本文大概需要 11 分鐘。
來自:segmentfault.com/a/1190000014479433
1.ZooKeeper是什么?
2.ZooKeeper提供了什么?
2、通知機制
3.Zookeeper文件系統(tǒng)
4.四種類型的znode
客戶端與zookeeper斷開連接后,該節(jié)點依舊存在
客戶端與zookeeper斷開連接后,該節(jié)點依舊存在,只是Zookeeper給該節(jié)點名稱進行順序編號
客戶端與zookeeper斷開連接后,該節(jié)點被刪除
客戶端與zookeeper斷開連接后,該節(jié)點被刪除,只是Zookeeper給該節(jié)點名稱進行順序編號

5.Zookeeper通知機制
6.Zookeeper做了什么?
2、配置管理
3、集群管理
4、分布式鎖
5、隊列管理
7.zk的命名服務(wù)(文件系統(tǒng))
8.zk的配置管理(文件系統(tǒng)、通知機制)
9.Zookeeper集群管理(文件系統(tǒng)、通知機制)
10.Zookeeper分布式鎖(文件系統(tǒng)、通知機制)
11.獲取分布式鎖的流程


12.Zookeeper隊列管理(文件系統(tǒng)、通知機制)
同步隊列,當一個隊列的成員都聚齊時,這個隊列才可用,否則一直等待所有成員到達。
隊列按照 FIFO 方式進行入隊和出隊操作。
13.Zookeeper數(shù)據(jù)復(fù)制
容錯:一個節(jié)點出錯,不致于讓整個系統(tǒng)停止工作,別的節(jié)點可以接管它的工作;
提高系統(tǒng)的擴展能力 :把負載分布到多個節(jié)點上,或者增加節(jié)點來提高系統(tǒng)的負載能力;
提高性能:讓客戶端本地訪問就近的節(jié)點,提高用戶訪問速度。
寫主(WriteMaster) :對數(shù)據(jù)的修改提交給指定的節(jié)點。讀無此限制,可以讀取任何一個節(jié)點。這種情況下客戶端需要對讀與寫進行區(qū)別,俗稱讀寫分離;
寫任意(Write Any):對數(shù)據(jù)的修改可提交給任意的節(jié)點,跟讀一樣。這種情況下,客戶端對集群節(jié)點的角色與變化透明。
14.Zookeeper工作原理
15.zookeeper是如何保證事務(wù)的順序一致性的?
16.Zookeeper 下 Server工作狀態(tài)
LOOKING:當前Server不知道leader是誰,正在搜尋
LEADING:當前Server即為選舉出來的leader
FOLLOWING:leader已經(jīng)選舉出來,當前Server與之同步
17.zookeeper是如何選取主leader的?


18.Zookeeper同步流程
Leader等待server連接;
Follower連接leader,將最大的zxid發(fā)送給leader;
Leader根據(jù)follower的zxid確定同步點;
完成同步后通知follower 已經(jīng)成為uptodate狀態(tài);
Follower收到uptodate消息后,又可以重新接受client的請求進行服務(wù)了。
19.分布式通知和協(xié)調(diào)

20.機器中為什么會有l(wèi)eader?
21.zk節(jié)點宕機如何處理?
3個節(jié)點的cluster可以掛掉1個節(jié)點(leader可以得到2票>1.5)
2個節(jié)點的cluster就不能掛掉任何1個節(jié)點了(leader可以得到1票<=1)
22.zookeeper負載均衡和nginx負載均衡區(qū)別
23.zookeeper watch機制
推薦閱讀:
【26期】如何判斷一個對象是否存活?(或者GC對象的判定方法)?
微信掃描二維碼,關(guān)注我的公眾號
朕已閱?

