開發與網路
Load Balancer 負載平衡器是什麼?流量的分散指揮官
Load Balancer(LB,負載平衡器)站在所有流量的最前面,把大量使用者請求平均分配到多台後端伺服器。它會定期做健康檢查,自動把異常的伺服器移出名單,避免單一台被打爆而讓整個服務掛掉。
Load Balancer 負載平衡器是什麼?流量的分散指揮官
一萬個人同時打開你的 AI 機器人,一台伺服器接不下來。可是換一台更大的機器,成本又不見得划算,而且那台掛了還是全掛。
業界的答案是多台一起扛,前面站一個負載平衡器負責分流。這篇講清楚它在做什麼。
你將學到什麼
定義
把外部流量平均分配到多台後端伺服器的元件。
白話比喻
像賣場門口的引導員,把人流均勻帶到每一個結帳櫃檯。
跟誰容易搞混
它管的是分流與可用性,跟限制單一用戶用量的速率限制不同。
定義
Load Balancer(LB,負載平衡器)的工作是把大量的使用者請求,均勻分配到多台後端伺服器,確保系統高可用、高效能。
它有五個核心任務:接收所有外部流量、健康檢查後端狀態、把流量分配到最合適的伺服器、自動遊開異常的節點、提升整體效能與擴充性。
白話比喻
想像賣場只開一個結帳櫃檯,人潮一來就排到門外。開十個櫃檯卻沒人引導,大家還是會全部擠在第一個。
負載平衡器就是那位站在入口的引導員。他看得到每個櫃檯現在多忙,把下一位客人帶到最空的那一台,而且發現某個櫃檯故障時會立刻不再往那裡帶人。
常見的分配演算法
| 演算法 | 怎麼分配 |
|---|---|
| Round Robin 輪詢 | 依序輪流,一台接一個,最單純。 |
| Least Connections 最少連線 | 分給目前連線數最少的那一台。 |
| IP Hash 來源雜湊 | 依來源 IP 計算,讓同一個人固定落在同一台。 |
| Weighted 權重 | 依伺服器規格給不同權重,強的分多一點。 |
選哪一種要看情境。長連線服務通常適合最少連線,需要維持狀態的服務則常用來源雜湊。
健康檢查是它最被低估的價值
負載平衡器會定期檢查每一台後端是否健康,例如每五秒問一次。不健康的伺服器會自動被移出分配名單。
這代表某一台掛掉時,使用者不會撞到錯誤頁,流量會自動走向其他還活著的機器。維運人員可以慢慢修,服務不中斷。
它也是彈性擴充的基礎。要加機器就加,加完自動納入分配;要減也一樣,過程中對使用者是透明的。
實際用例
AI 聊天機器人與 API 服務是最典型的場景,模型推論很吃資源,單台很容易被打滿。電商下單系統、即時影像辨識、遊戲後端也都靠它撐流量。
監控上要盯四個數字:請求量、延遲、健康檢查狀態、後端伺服器負載,再加上錯誤率。這五個一起看,才知道是分流不均還是後端真的不夠。
常見誤解最常見的誤解是把負載平衡器當成效能萬靈丹。它讓 吞吐量 可以水平擴充,但單一請求的處理時間不會因此變快,延遲 甚至會多一小段轉發成本。另一個誤解是把它跟 速率限制 混為一談,一個管的是流量往哪去,一個管的是誰能用多少。
本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook。
延伸學習
常見問答
有了負載平衡器就不會掛掉嗎?
不會保證。它解決的是單台過載與單點故障,但如果所有後端都撐不住,或是資料庫成為瓶頸,一樣會出事。它是必要條件不是充分條件。
負載平衡器自己掛掉怎麼辦?
所以它本身也要做高可用,通常由雲端服務商以叢集方式提供,不會只有一台。自架的話就必須自己處理備援,否則你只是把單點往前挪了一格。
使用者登入狀態會不會因為換伺服器就掉了?
如果登入狀態存在單台伺服器的記憶體裡就會。做法是把工作階段存到共用的儲存體,或用來源 IP 雜湊之類的策略讓同一個人固定落在同一台。
