1首先可以使用單一的硬體負載均衡裝置或lvs nginx等軟體來進行路由和負載均衡排程。
2但隨著業務量的進一步增大,單點故障問題越來越嚴重,此時需要乙個能夠動態註冊和獲取服務資訊的地方,來統一管理服務名稱機器對應的伺服器列表資訊成為服務配置中心。(單點故障問題,一台伺服器宕機可能任然被負載均衡裝置分配到任務)
3服務配置中心的任務是管理服務(服務名稱及對應的伺服器),伺服器啟動時自動上傳其服務及自身位址到服務配置中心,伺服器宕機時也會提示從服務配置中心刪除對應的 伺服器,當有服務請求時,消費者只有第一次服務請求時會將服務配置中心查詢到的服務快取到本地,後面呼叫時直接訪問本地快取。
zookeeper用來動態實現服務註冊,機器上下線感知,擴容方便,容錯性好
1輪詢演算法,輪詢的效果近似於平均,每台伺服器的壓力相近
2隨機演算法,隨著伺服器台數增加,隨機演算法與輪詢演算法近似
3源位址雜湊法,根據客戶端ip的hash值對伺服器列表的size取模得到對應的伺服器,這樣可以保證從同乙個ip發出的請求被對映到同一臺伺服器,除非 伺服器列表發生變化。
4加權輪詢演算法可以根據機器的實際情況分配任務,對配置高負載低的 機器配置更高的權重,給配置低負載高的機器配置較低的權重可以更好的處理
5加權隨機法,原理與加權輪詢法類似,讓高配置低負載的機器獲得
6最小連線數演算法,選取積壓連線數最小的伺服器
7groovy指令碼實現動態的負載均衡。當新的業務需求新的負載均衡規則時,只需要相關業務方編寫好相應的groovy指令碼,在工程中配置好即可,不需要進行相應的**修改。
Nginx負載均衡配置及演算法詳解
筆記 專欄收錄該內容 36 篇文章1 訂閱 訂閱專欄 如果你的nginx伺服器給2臺web伺服器做 負載均衡演算法採用輪詢,那麼當你的一台機器web程式關閉造成web不能訪問,那麼nginx伺服器分發請求還是會給這台不能訪問的web伺服器,如果這裡的響應連線時間過長,就會導致客戶端的頁面一直在等待響...
nginx負載均衡及配置
實現伺服器集群主要就是為了負載均衡 load balance 有兩台或者以上的伺服器或者站點提供服務,服務將來自客戶端的請求,靠某種演算法,去盡量平分請求到集群的機器中,從而避免一台伺服器因為負載太高而出現故障,而即使其中某個機器出現故障,負載均衡會自動規避選擇,使得使用者也能正常訪問服務。好處 減...
負載均衡演算法及手段
可以是專用裝置,也可以是在通用伺服器上執行的應用程式。分散請求到擁有相同內容或提供相同服務的伺服器。專用裝置一般只有乙太網介面,可以說是多層交換機的一種。負載均衡器一般會被分配虛擬ip位址,所有來自客戶端的請求都是針對虛擬ip位址完成的。負載均衡器通過負載均衡演算法將來自客戶端的請求 到伺服器的實際...