1. 程式人生 > >Java之品優購部署_day01(4)

Java之品優購部署_day01(4)

領導者 bad address lower ava 正常 發生 str caf

2.1.1 啟動集群
啟動集群就是分別啟動每個實例。
技術分享圖片
啟動後我們查詢一下每個實例的運行狀態
先查詢第一個服務
技術分享圖片

Mode 為 follower 表示是跟隨者(從)
再查詢第二個服務 Mod 為 leader 表示是領導者(主)

技術分享圖片
查詢第三個為跟隨者(從)
技術分享圖片

2.1.2 模擬集群異常
(1)首先我們先測試如果是從服務器掛掉,會怎麽樣
把 3 號服務器停掉,觀察 1 號和 2 號,發現狀態並沒有變化

技術分享圖片

由此得出結論,3 個節點的集群,從服務器掛掉,集群正常
(2)我們再把 1 號服務器(從服務器)也停掉,查看 2 號(主服務器)的狀態,發現已經停止運行了。

技術分享圖片
由此得出結論,3 個節點的集群,2 個從服務器都掛掉,主服務器也無法運行。因為可運行的機器沒有超過集群總數量的半數。

(3)我們再次把 1 號服務器啟動起來,發現 2 號服務器又開始正常工作了。而且依然是領導者。
技術分享圖片

(4)我們把 3 號服務器也啟動起來,把 2 號服務器停掉(汗~~幹嘛?領導掛了?)停掉後
觀察 1 號和 3 號的狀態。
技術分享圖片

發現新的 leader 產生了~

由此我們得出結論,當集群中的主服務器掛了,集群中的其他服務器會自動進行選舉狀態, 然後產生新得 leader

(5)我們再次測試,當我們把 2 號服務器重新啟動起來(汗~~這是詐屍啊!)啟動後,會發生什麽?2 號服務器會再次成為新的領導嗎?我們看結果
技術分享圖片

我們會發現,2 號服務器啟動後依然是跟隨者(從服務器),3 號服務器依然是領導者(主服務器),沒有撼動 3 號服務器的領導地位。哎~退休了就是退休了,說了不算了,哈哈。

由此我們得出結論,當領導者產生後,再次有新服務器加入集群,不會影響到現任領導者。

技術分享圖片
2.3 Dubbox 連接 zookeeper 集群
修改服務提供者和服務調用者的 spring 配置文件

Java之品優購部署_day01(4)