任何在線服務(wù)提供商的兩個最關(guān)鍵要求是可用性和冗余。服務(wù)器響應(yīng)請求所需的時間因其當(dāng)前容量而異。如果即使單個組件發(fā)生故障或被請求淹沒,服務(wù)器也會過載,客戶和業(yè)務(wù)都會受到影響。
負(fù)載平衡嘗試通過跨多個組件共享工作負(fù)載來解決此問題。傳入的請求可以從過載的服務(wù)器路由到具有更多可用資源的服務(wù)器。負(fù)載平衡具有從網(wǎng)絡(luò)交換機到數(shù)據(jù)庫服務(wù)器的各種應(yīng)用程序。
負(fù)載平衡如何工作
服務(wù)提供商通常使用面向Internet的前端服務(wù)器來構(gòu)建其網(wǎng)絡(luò),以便將信息傳送到后端服務(wù)器或從后端服務(wù)器傳送信息。這些前端服務(wù)器包含負(fù)載平衡軟件,可根據(jù)資源可用性將請求轉(zhuǎn)發(fā)到其中一個后端服務(wù)器。負(fù)載平衡軟件包含內(nèi)部規(guī)則和邏輯,用于確定轉(zhuǎn)發(fā)每個請求的時間和位置。
以下是負(fù)載平衡如何工作的概述:
用戶打開Goog??le.com等網(wǎng)頁
前端服務(wù)器接收請求并確定將其轉(zhuǎn)發(fā)的位置??梢允褂酶鞣N算法來確定轉(zhuǎn)發(fā)請求的位置,其中一些更基本的算法包括隨機選擇或循環(huán)。如果沒有可用的后端服務(wù)器,則前端服務(wù)器執(zhí)行預(yù)定的操作,例如向用戶返回錯誤消息。
后端服務(wù)器處理請求并生成響應(yīng)。同時,后端服務(wù)器定期向負(fù)載均衡器報告其當(dāng)前狀態(tài)。
后端服務(wù)器向前端服務(wù)器返回響應(yīng),然后將其轉(zhuǎn)發(fā)給用戶。
如果一切順利,無論服務(wù)提供商的網(wǎng)絡(luò)狀態(tài)如何,用戶都將及時收到響應(yīng)。如果至少有一個前端服務(wù)器和至少一個后端服務(wù)器可用,則正確處理用戶的請求。
負(fù)載平衡示例
Google的計算引擎基于多種Google產(chǎn)品使用的相同負(fù)載平衡技術(shù),包括Gmail,搜索和Google廣告。Compute Engine會定期檢查所有后端服務(wù)器的狀態(tài),并根據(jù)其當(dāng)前負(fù)載將其標(biāo)記為健康或不健康。
當(dāng)用戶連接到Google服務(wù)時,Compute Engine會將請求轉(zhuǎn)發(fā)給健康的服務(wù)器。然后,響應(yīng)從健康的服務(wù)器通過計算引擎轉(zhuǎn)發(fā)回用戶。同時,不健康的服務(wù)器被修復(fù),更換或脫機。
通過負(fù)載平衡,可以升級服務(wù)器,而不會中斷最終用戶的體驗。Google和其他服務(wù)提供商通過波浪升級其后端服務(wù)器來推動應(yīng)用程序更新。例如,當(dāng)服務(wù)器脫機升級時,其他服務(wù)器負(fù)責(zé)工作負(fù)載,然后依次更新。
在計算引擎中,使系統(tǒng)脫機以進(jìn)行維護(hù)和升級的能力稱為“跛鴨模式”。這就是即使在活動會話之間,Google的網(wǎng)絡(luò)產(chǎn)品也可以無縫更新的方式。
負(fù)載平衡的好處
負(fù)載平衡使系統(tǒng)管理員可以更輕松地處理傳入請求,同時減少用戶的等待時間
用戶體驗更快,不間斷的服務(wù)。用戶不必等待單個苦苦掙扎的服務(wù)器完成其先前的任務(wù)。相反,他們的請求會立即傳遞給更容易獲得的資源。
服務(wù)提供商可以減少停機時間并提高吞吐量。即使是完整的服務(wù)器故障也不會影響最終用戶體驗,因為負(fù)載均衡器只會將其路由到健康的服務(wù)器。
系統(tǒng)管理員體驗較少的故障或壓力組件。負(fù)載平衡有幾個設(shè)備執(zhí)行一些工作,而不是單個設(shè)備執(zhí)行大量工作。