阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈

如果您正在深入研究 Web 基礎架構的世界,您可能聽說過負載平衡。它就像網路的交通警察,確保所有這些資料請求到達正確的位置而不會造成堵塞。在本文中,我們將詳細介紹一些流行的負載平衡技術,並向您展示如何使用 NGINX 進行設定。在評論中分享您最喜歡的負載平衡策略,並告訴我們它如何幫助解決您的問題。

1. 循環

循環賽

何時使用它:當您的伺服器都非常相似時,非常適合均勻分佈請求。

這是什麼意思:把它想像成輪流。每個伺服器都按順序收到一個請求,一個接一個。當所有伺服器都具有同等功能時,它很簡單且效果很好。

缺點:沒有考慮伺服器負載或容量差異,如果伺服器功率不同,可能會導致效能不均。

如何在 NGINX 中設定:

upstream backend {
    server server1.example.com;
    server server2.example.com;
    server server3.example.com;
}

2. 最少連接

最少連接

何時使用它:非常適合當某些伺服器比其他伺服器繁忙時。

這是關於什麼的:這個將流量發送到活動連接最少的伺服器。這就像在雜貨店選擇最短的隊伍一樣。

缺點:如果某些伺服器速度較慢或容量較小,可能會導致分佈不均勻,因為它們最終可能仍會產生更多連線。

如何在 NGINX 中設定:

upstream backend {
    least_conn;
    server server1.example.com;
    server server2.example.com;
    server server3.example.com;
}

3. 加權循環

加權循環賽

何時使用它:當您的伺服器具有不同的優勢時非常方便。

它的意義:與循環法類似,但您可以根據某些伺服器的容量為其提供更多「輪次」。

缺點:需要手動配置和調整權重,這可能很複雜,並且需要隨著伺服器負載的變化定期調整。

如何在 NGINX 中設定:

upstream backend {
    server server1.example.com weight=3;
    server server2.example.com weight=1;
    server server3.example.com weight=2;
}

4. 加權最少連接

加權最少連接

何時使用它:最適合具有不同伺服器負載和功能的混合環境。

它是什麼:結合了兩個世界的優點——最少連接和加權循環。

缺點:與加權循環法一樣,它需要仔細配置和監控以確保權重設定正確。

如何在 NGINX 中設定:

upstream backend {
    least_conn;
    server server1.example.com weight=3;
    server server2.example.com weight=1;
    server server3.example.com weight=2;
}

5.IP哈希

IP雜湊值

何時使用它:非常適合讓用戶連接到同一台伺服器。

它的意義:使用客戶端的 IP 位址來決定使用哪個伺服器,確保一致性。

缺點:如果大量使用者共用相同 IP 範圍,則可能導致分佈不均,且無法妥善處理伺服器故障。

如何在 NGINX 中設定:

upstream backend {
    ip_hash;
    server server1.example.com;
    server server2.example.com;
    server server3.example.com;
}

6. 最短回應時間

最短回應時間

何時使用它:當速度就是一切時的理想選擇。

它的意義:將請求傳送到回應最快的伺服器。 NGINX 不支援開箱即用,但您可以使用一些第三方魔法,例如Nginx Upstream Fair Module ..

缺點:需要額外的監控和第三方模組,這會增加複雜性和潛在的故障點。


7. 隨機

隨機的

何時使用它:適合測試或當您只是想混合使用時。

它是什麼:為每個請求隨機選擇一個伺服器。同樣,您需要一個第三方模組,例如Nginx Random Load Balancer Module

缺點:可能導致負載分佈不均勻,不適合效能至關重要的生產環境。


8. 最小頻寬

最小頻寬

何時使用它:當頻寬使用率很高時很有用。

它的意義:使用最少的頻寬將流量定向到伺服器。對於這一點,您需要一些自訂設置,例如自訂腳本或監視工具。

缺點:需要自訂監控和設置,這可能很複雜且佔用資源。


其他酷負載平衡技巧

  1. 基於地理位置:根據使用者所在位置引導流量。非常適合減少延遲。

  2. 一致性雜湊:即使伺服器池發生變化,也可以將請求保持到同一伺服器。非常適合快取系統。

  3. 自訂負載平衡:使用 NGINX 中的自訂腳本或 Lua 腳本根據您的需求進行自訂。


結論

選擇正確的負載平衡策略就是要了解應用程式的需求。 NGINX 非常靈活,可以輕鬆處理其中的許多策略。無論您使用內建方法還是第三方模組,都有適合您的解決方案。只需注意潛在的缺點並做出相應的計劃即可。請在評論中分享您最喜歡的負載平衡策略。快樂平衡!


原文出處:https://dev.to/juniourrau/8-type-of-load-balancing-104j

按讚的人:

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈