簡單交接zookeeper,腦裂現象

2021-10-07 08:50:11 字數 1299 閱讀 3917

zookeeper

1.zookeeper是乙個分布式的,開放原始碼的分布式應用程式協調服務,是google的chubby乙個開源的實現,是hadoop和hbase的重要元件。它是乙個為分布式應用提供一致性服務的軟體,提供的功能包括:配置維護、網域名稱服務、分布式同步、組服務等。

2.zookeeper是以fast paxos演算法為基礎的,paxos 演算法存在活鎖的問題,即當有多個proposer交錯提交時,有可能互相排斥導致沒有乙個proposer能提交成功,而fast paxos作了一些優化,通過選舉產生乙個leader (領導者),只有leader才能提交proposer

總結:zookeeper是分布式環境中提供一致性服務的排程器

zk集群搭建

為什麼集群是奇數臺?

公式: 剩餘存活節點的數量 > n/2

1個節點  不滿足公式 ,所以不能搭建集群.

2個節點 1>1 不滿足公式 所以不能搭建集群.

3個節點 2>1.5 滿足公式 可以搭建集群.

結論:集群的最小的單位3臺.

價效比問題:

4個節點 3>2 滿足公式 偶數臺也可以搭建集群

3個節點:  最多宕機1臺.否則集群崩潰.

4個節點: 最大宕機1臺,否則集群崩潰.

結論:3臺的效果與4臺效果相同,所以選擇奇數

zk啟動現象:

只有當集群超過半數以上啟動時才能正常工作

腦裂現象:

在集群中,由於需要高可用配置,當主機宕機時,需要重新選舉新的主機,當連續出現平票時,則可能出現多太主機現象,稱之為腦裂(選舉機制連續3次平票才有可能出現腦裂概率:12.5%(八分之一))

適當的調整節點數量可有效的降低腦裂現象的發生

zk集群的選舉機制

說明:在搭建集群時,會動態的分配myid的序號,zk集群的選舉規則秉承著序號最大值優先的策略,集群選舉時超過半數同意即當選新的主機

面試題: 1-7臺zk, 問哪幾台永遠不能當主機?

答案:1-3臺永遠不能當主機.

zk集群的程式連線規則

zk集群中主機只負責監控資料同步,從機負責與客戶端互動,**中的連線zk的一般都是從機

Lost Numbers 簡單互動

題意 互動式題目 要求通過最多四次詢問確定出來乙個序列 這個序列只含6個元素,4 8,15,16,23,42,每個元素只會出現一次 詢問的格式是 l r 返回值為這個序列l位置與r位置的元素乘積 思路 我的思路是每次都是相同的四個詢問 1 1 1 2 3 5 4 5 前兩個詢問可以確定1,2兩個元素...

MySQL python與MySQL簡單互動

1 匯入pymysqlimport pymysql沒有的請先自行安裝 2 建立資料庫連線db pymysql.connect host 資料庫位址 user 使用者名稱 password 密碼 port 3306,charset utf8 database 具體資料庫名字 3 利用db方法建立游標物...

互換變數內容(簡單交換)

description編寫乙個函式swap,其功能是實現交換兩個整數a和b的值。函式原型可參考如下 void swap int a,int b 編寫程式,從鍵盤輸入兩個整數a和b,呼叫swap函式實現交換a和b的值,處理完畢後,在主函式中輸出交換後的a和b的值。輸出的兩個資料之間用空格分隔。inpu...