負載均衡是很多系統管理員都會忽視的問題,但是它很可能會損害它們的網路。如果系統管理員發現網路效能不好,通常他們會為客戶端提供更多的頻寬(無論是內部網、外部網還是互連網),還要提供更快的骨幹網並在伺服器上花更多的錢。但是這條路有時也需要優化,你可以通過網路負載均衡來實現這種優化。
網路負載均衡讓系統能夠更均衡地分配資源,避免快速湧來的大量資料被分配給一台web伺服器所導致通訊阻塞。讓我們來看看不同型別的網路負載均衡,並了解為什麼他們能夠提高你的網路的效能。
三代不同的負載均衡方法
在市場上有幾代不同的負載均衡的方案,它們的功能從簡單逐漸變得更加複雜、強大。
第一代負載均衡產品只是簡單的round-robin dns機器它能夠把http程序在幾個ip主機裡進行分配。這類系統使用簡單的ping命令來保證程序請求不會被送到乙個狀態不佳的伺服器那裡,並為多伺服器引入了乙個變數來表示容錯率。
第二代負載均衡產品不僅僅檢查伺服器是否還在執行,它還要檢查伺服器的效能狀態。也就是說,如果一台伺服器負載過重,發進來的請求就會被**到其他機器上以保證負載在所有能夠獲得的資源裡均衡分配了。
第三代負載均衡產品覆蓋了整個內容分發系統。隨著web和網路服務變得越來越成熟,僅僅監視web伺服器的某一層是遠遠不夠的。如果乙個web主機非常健康,但是它的後台伺服器或/和應用有問題的話,把請求發給這台主機也是毫無意義的。新的服務,比如**銷售,都已經開始使用多層伺服器來管理內容、資料庫和事務處理引擎。由於電子商務目前已經關係到客戶的錢,這就要求我們必須保證能夠為客戶提供盡可能好的效能和可靠性。因此,負載均衡廠商開發了第三代負載均衡產品以保證整個內容分發系統的健康、良好執行。
兩種型別的負載均衡產品
負載均衡產品基本上可以分成兩大類:
·基於軟體的負載均衡產品
據我所知,基於軟體的負載均衡產品唯一的問題就是它的速度比基於硬體的負載均衡產品要慢。你之所以需要乙個負載均衡產品,首先是因為你的網路以線速執行而你的伺服器的速度卻取決於應用的速度或應用傳遞內容的速度。從另乙個方面說,如果你的網路發生了變化,或者你需要一些特殊的功能,軟體能夠非常快地進行公升級並滿足你的需要。
·基於硬體的負載均衡產品
基於硬體的負載均衡通常是由路由器和switch完成的。這些裝置使用asic(application-specific integrated circuits),以線速執行。這是市場上最快的負載均衡產品。但是由於所有的功能都是由硬體完成,如果你的網路商業流程發生了改變,你就只能等著你的**商來滿足你的需求了。你甚至可能會不得不買乙個新的硬體。
它是如何工作的?
負載均衡產品根據他們通過自己的agent(由負載均衡產品廠商開發)或者使用一些系統管理工具的模板,來收集關於後台伺服器的資訊,並根據這些資訊調整對資源的分配。agent和系統管理工具兩種方法各有利弊。agent是為特定的軟體和硬體服務的,它能夠非常嚴密地監視應用狀況。但是,這也意味著你被鎖定在某乙個特定的廠商上了。
使用現有系統管理工具的負載均衡產品可以通過api和公共協議監視更多的軟體和硬體。當然,使用這類產品來管理你的商業系統會引起一些安全性上的問題,這是你必須提前考慮到的。
如上所述,新一代的負載均衡產品不僅僅處理網路和伺服器效能問題,他們還能夠根據前台請求和後台內容來分配資源。這一類產品會識別請求,然後把該請求掛起,直到所請求內容已經準備好了,這叫做delayed binding。
這種能夠識別內容的路由非常有用,伺服器集群可以為特定的應用(比如cgi、流**、cookie服務等等)進行調整,而且負載均衡產品會處理並分發所有的請求到保持連線的客戶端。這點非常重要,比如,使用ssl的web購物車事務,因為ssl連線非常耗佔處理器資源,所以必須穩定地保持幾個web流程和事務處理。
結束語選擇何種負載均衡技術/產品應該取決於你需要處理的負載有多少,以及它們的複雜程度。顯然乙個受歡迎但是簡單的企業內部**的負載均衡方案要比乙個電子商務**的簡單的多。至於電子商務**,也許最新一代的負載均衡產品能夠最好地滿足它們的需求。
利用Nginx做負載均衡
最近正在研究nginx,nginx作為反向 伺服器,可以對web伺服器提供加速,並且具有負載均衡的功能。在windows版本中,將壓縮包進行解壓,執行命令 1 start nginx 這樣就可以啟動nginx服務了。而執行命令 1 nginx s stop 可以停止服務。這是我在192.168.3....
利用Nginx做負載均衡
最近正在研究nginx,nginx作為反向 伺服器,可以對web伺服器提供加速,並且具有負載均衡的功能。在windows版本中,將壓縮包進行解壓,執行命令 1 start nginx 這樣就可以啟動nginx服務了。而執行命令 1 nginx s stop 可以停止服務。這是我在192.168.3....
利用nginx實現負載均衡
我這裡是使用docker安裝的。安裝流程可參照 dockerfile 這裡安裝了兩個tomcat,埠分別是42000和42001。第二個tomcat的首頁隨便加了些 區分 這裡的網域名稱要和下面proxy pass的一樣 重新整理頁面發現頁面會發生變化,證明負載配置成功。因為我配的權重第二個是第乙個...