有一種用軟體實現負載均衡的方式,是基於"url重定向"的.
先看看什麼是url重定向:
"很多網路協議都支援「重定向」功能,例如在http協議中支援location指令,接收到這個指令的瀏覽器將自動重定向到location指明的另乙個url上。" (
) 這種方式,對於簡單的**,如果**是自己開發的,也在一定程度上可行.但是它存在著較多的問題:
1、「例如一台伺服器如何能保證它重定向過的伺服器是比較空閒的,並且不會再次傳送location指令,location指令和瀏覽器都沒有這方面的支援能力,這樣很容易在瀏覽器上形成一種死迴圈。」
2、在**放location,也是乙個問題。很有可能使用者會訪問系統的很多個不同url,這個時候做起來會非常麻煩。並且,對url的訪問,有的時候是直接過來的,可以被重定向,有的時候是帶著session之類的,重定向就可能會出問題。並且,這種做法,將負載均衡這個系統級的問題放到了應用層,結果可能是麻煩多多。
3、這種方式一般只適用於http方式,但是實際上有太多情況不僅僅是http方式了,特別是使用者如果在應用裡面插一點流**之類的。
4、重定向的方式,效率遠低於ip隧道。
5、這種方式,有的時候會伴以對伺服器狀態的檢測,但往往也是在應用層面實現,從而實時性大打折扣。
實際上,這種方式是一種「對付」的解決方法,並不能真正用於企業級的負載均衡應用(這裡企業級是指稍微複雜一點的應用系統)
可以看一下專業的負載均衡軟體是如何來實現的(
對比一下可以發現,專業的負載均衡軟體要更適用於正規應用,而重定向方式則比較適用於一些簡單的**應用。
負載均衡演算法實現方式
輪詢 round robin 法 1.獲取ip列表 2.根據ip在list的中pos順序獲取,server keylist.get pos 使得同一時刻只能有乙個執行緒可以修改pos的值 隨機 random 法 1.獲取ip列表 2.random的nextint方法取0 keylist.size 區...
負載均衡的幾種實現方式
1 http重定向負載均衡。這種負載均衡方案的優點是比較簡單,缺點是瀏覽器需要每次請求兩次伺服器才能拿完成一次訪問,效能較差。2 dns網域名稱解析負載均衡。dns網域名稱解析負載均衡的優點是將負載均衡工作交給dns,省略掉了網路管理的麻煩,缺點就是dns可能快取a記錄,不受 控制。3 反向 負載均...
負載均衡的幾種實現方式
1 http重定向負載均衡。負載均衡的幾種實現方式 這種負載均衡方案的優點是比較簡單,缺點是瀏覽器需要每次請求兩次伺服器才能拿完成一次訪問,效能較差。2 dns網域名稱解析負載均衡。dns網域名稱解析負載均衡的優點是將負載均衡工作交給dns,省略掉了網路管理的麻煩,缺點就是dns可能快取a記錄,不受...