Zookeeper 實現負載均衡
阿新 • • 發佈:2018-12-25
原理解析
架構圖 每臺WorkServer啟動的時候都會到Server建立臨時節點。 每臺ClientServer啟動的時候,都會到Server節點下面取得所有WorksServer節點,並通過一定演算法取得一臺並與之連線。 服務端主體流程 有ClientServer與之建立連線,這臺WorksServer的負載計數器加一,斷開連線負載計數器減一。負載計數器作為客戶端負載均衡演算法的依據,客戶端會選擇負載最輕的WorksServer建立連線。
客戶端流程 服務端核心類 ServerRunner 排程類 RegistProvider 服務端啟動時的註冊過程 ServerHander 處理與客戶端之間的連線 DefaultBalanceUpdateProvider 連線建立與斷開,修改負載資訊 客戶端核心類 ClientRunner 排程類 ClientHander 處理與伺服器之間的通訊 BanceProvider 負載的演算法 ServerData 伺服器和客戶端公用的類,計算負載等使用
架構圖 每臺WorkServer啟動的時候都會到Server建立臨時節點。 每臺ClientServer啟動的時候,都會到Server節點下面取得所有WorksServer節點,並通過一定演算法取得一臺並與之連線。 服務端主體流程 有ClientServer與之建立連線,這臺WorksServer的負載計數器加一,斷開連線負載計數器減一。負載計數器作為客戶端負載均衡演算法的依據,客戶端會選擇負載最輕的WorksServer建立連線。
客戶端流程 服務端核心類