2.zookeeper 集群
2.1 zookeeper 集群簡介
2.1.1 為什麼搭建 zookeeper 集群
大部分分布式應用需要乙個主控、協調器或者控制器來管理物理分布的子程序。目前,
大多數都要開發私有的協調程式,缺乏乙個通用機制,協調程式的反覆編寫浪費,且難以形 成通用、伸縮性好的協調器,zookeeper 提供通用的分布式鎖服務,用以協調分布式應用。 所以說 zookeeper 是分布式應用的協作服務。
zookeeper 作為註冊中心,伺服器和客戶端都要訪問,如果有大量的併發,肯定會有等 待。所以可以通過 zookeeper 集群解決。
下面是 zookeeper 集群部署結構圖:
2.1.2 了解 leader 選舉
zookeeper 的啟動過程中 leader 選舉是非常重要而且最複雜的乙個環節。那麼什麼是 leader選舉呢?zookeeper為什麼需要leader選舉呢?zookeeper的leader選舉的過程又是什 麼樣子的?
首先我們來看看什麼是 leader 選舉。其實這個很好理解,leader 選舉就像**選舉一樣, 每人一票,獲得多數票的人就當選為**了。在 zookeeper 集群中也是一樣,每個節點都會 投票,如果某個節點獲得超過半數以上的節點的投票,則該節點就是 leader 節點了。
以乙個簡單的例子來說明整個選舉的過程. 假設有五颱伺服器組成的 zookeeper 集群,它們的 id 從 1-5,同時它們都是最新啟動的,也 就是沒有歷史資料,在存放資料量這一點上,都是一樣的.假設這些伺服器依序啟動,來看看會 發生什麼 。 1) 伺服器 1 啟動,此時只有它一台伺服器啟動了,它發出去的報沒有任何響應,所以它的 選舉狀態一直是 looking 狀態 2) 伺服器 2 啟動,它與最開始啟動的伺服器 1 進行通訊,互相交換自己的選舉結果,由於 兩者都沒有歷史資料,所以id 值較大的伺服器2勝出,但是由於沒有達到超過半數以上的服務 器都同意選舉它(這個例子中的半數以上是 3),所以伺服器 1,2 還是繼續保持 looking 狀態. 3) 伺服器 3 啟動,根據前面的理論分析,伺服器 3 成為伺服器 1,2,3 中的老大,而與上面不 同的是,此時有三颱伺服器選舉了它,所以它成為了這次選舉的 leader. 4) 伺服器 4 啟動,根據前面的分析,理論上伺服器 4 應該是伺服器 1,2,3,4 中最大的,但是 由於前面已經有半數以上的伺服器選舉了伺服器 3,所以它只能接收當小弟的命了.
Java之品優購部署 day01(3)
2.2 搭建 zookeeper 集群 2.2.1 搭建要求 真實的集群是需要部署在不同的伺服器上的,但是在我們測試時同時啟動十幾個虛擬機器 記憶體會吃不消,所以我們通常會搭建偽集群,也就是把所有的服務都搭建在一台虛擬機器上,用埠進行區分。我們這裡要求搭建乙個三個節點的 zookeeper 集群 偽...
Java之品優購課程講義 day01(1)
走進電商 1.1電商行業分析 近年來,中國的電子商務快速發展,交易額連創新高,電子商務在各領域的應用不斷拓展和深化 相關服務業蓬勃發展 支撐體系不斷健全完善 創新的動力和能力 不斷增強。電子商務正在與實體經濟深度融合,進入規模性發展階段,對經濟社會生活的影響不斷增大,正成為我國經濟發展的新引擎。中國...
Java之品優購課程講義 day04(3)
運營商系統登入與安全控制 2.1 需求分析 完成運營商登陸功能 2.1 登陸功能的實現 2.1.1 配置檔案 1 修改 pinyougou manager web 的 pom.xml 新增依賴 org.springframework.security spring security web org....