論 Nginx 和 LVS 的各種優缺點

2022-08-18 03:00:16 字數 1114 閱讀 2945

lvs 的負載能力強,因為其工作方式邏輯非常簡單,僅進行請求分發,而且工作在網路的第 4 層,沒有流量,所以其效率不需要有過多的憂慮。

lvs 基本能支援所有應用,因為工作在第 4 層,所以 lvs 可以對幾乎所有應用進行負載均衡,包括 web、資料庫等。

注意:lvs 並不能完全判別節點故障,比如在 wlc 規則下,如果集群裡有乙個節點沒有配置 vip,將會導致整個集群不能使用。還有一些其他問題,目前尚需進一步測試。

nginx 工作在網路第 7 層,所以可以對 http 應用實施分流策略,比如網域名稱、結構等。相比之下,lvs 並不具備這樣的功能,所以 nginx 可使用的場合遠多於 lvs。並且 nginx 對網路的依賴比較小,理論上只要 ping 得通,網頁訪問正常就能連通。lvs 比較依賴網路環境。只有使用 dr 模式且伺服器在同一網段內分流,效果才能得到保證。

nginx 可以通過伺服器處理網頁返回的狀態嗎、超時等來檢測伺服器內部的故障,並會把返回錯誤的請求重新傳送到另乙個節點。目前 lvs 和 ldirectd 也支援對伺服器內部情況的監控,但不能重新傳送請求。

比如使用者正在上傳乙個檔案,而處理該上傳資訊的節點剛好出現故障,則 nginx 會把上傳請求重新傳送到另一台伺服器,而 lvs 在這種情況下會直接斷掉。nginx 還能支援 http 和 email(email 功能很少有人使用),lvs 所支援的應用在這個電商比 nginx 更多。

nginx 同樣能承受很高負載並且能穩定執行,由於處理流量受限於機器 i/o 等配置,所以負載能力相對較差。

nginx 安裝、配置及測試相對來說比較簡單,因為有相應的錯誤日誌進行提示。lvs 的安裝、配置及測試所花的時間比較長,因為 lvs 對網路以來比較大,很多時候有可能因為網路問題而配置不能成功,出現問題時,解決的難度也相對較大。nginx 本身沒有現成的熱備方案,所以在單機上執行風險較大,建議 keepalived 配合使用。另外,nginx 可以作為 lvs 的節點機器使用,充分利用 nginx 的功能和效能。當然這種情況也可以直接使用 squid 等其他具備分發功能的軟體。

具體應用具體分析。如果是比較小型的**(每日 pv 小於 100 萬),使用者 nginx 就完全可以應對,如果機器也不少,可以用 dns 輪詢。lvs 後用的機器較多,在構建大型**或者提供重要服務且機器較多時,可多加考慮利用 lvs。

AsyncTask 和Handler 的優缺點比較

asynctask 實現的原理和優缺點 優點 快捷 方便 缺點 當執行多個後台任務,和並需要ui 變更起來就比較複雜 handler 實現的原理和優缺點 優點 簡單 清晰 缺點 當執行單個後台任務,顯得 過多,結構複雜 相對性 asynctask 介紹 android 的asynctask 比han...

hibernate和mybatis的優缺點

mybatis的優點 1 易於上手和掌握,提供了資料庫查詢的自動物件繫結功能 2 sql寫在xml裡,便於統一管理和優化,解除sql與程式 的耦合。3 提供對映標籤,支援物件與資料庫的orm欄位關係對映 4 提供物件關係對映標籤,支援物件關係組建維護 5 提供xml標籤,支援編寫動態sql。6 速度...

LVS和Nginx的區別

nginx工作在網路的第7層,所以它可以針對http應用本身來做分流策略,比如針對網域名稱 目錄結構等,相比之下lvs並不具備這樣的功能,所以nginx單憑這點可以利用的場合就遠多於lvs了 但nginx有用的這些功能使其可調整度要高於lvs,所以經常要去觸碰觸碰,由lvs的第2條優點來看,觸碰多了...