每天進步一點點 負載均衡之HTTP重定向

2021-06-22 20:36:46 字數 1108 閱讀 3973

由於目前現有網路的各個核心部分隨著業務量的提高,訪問量和資料流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的伺服器裝置根本無法承擔。在此情況下,如果扔掉現有裝置去做大量的硬體公升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提公升時,這又將導致再一次硬體公升級的高額成本投入,甚至效能再卓越的裝置也不能滿足當前業務量增長的需求。 針對此情況而衍生出來的一種廉價有效透明的方法以擴充套件現有網路裝置和伺服器的頻寬、增加吞吐量、加強網路資料處理能力、提高網路的靈活性和可用性的技術就是負載均衡(load balance)。

乙個能夠提供高併發訪問,快速響應的伺服器集群不是一開始就能設計出來的,但對於軟體架構師而言,在架構設計之初就要有應付這種高併發,為集群提供水平擴充套件的計畫,具體何時進行擴充套件,就需要在後續處理業務的過程中慢慢演化了。同時,在設計之初,為了能快速擴充套件而不影響集群的正常使用,建議把伺服器設計成無狀態的,也就是集群伺服器不儲存請求上下文資訊,這樣使用者的請求被發往集群中的任何乙個節點所處理的返回結果都將是一樣的。因此在集群中就可以使用負載均衡技術將不同的請求發往不同的節點上進行處理。如下圖:

負載均衡伺服器需要能夠感知或者可以配置集群中的伺服器數量,可以及時發現集群中新上線或者下線的伺服器,並能向新上線的伺服器分發請求,停止向已下線的伺服器分發請求,這樣就實現了伺服器集群的伸縮性。負載均衡的實現技術有多種多樣,從硬體實現到軟體實現,從商業產品到開源產品,應有盡有。本文主要介紹web伺服器中http反向**機制,以此來達到伺服器之間的負載均衡。

利用http重定向協議實現負載均衡大概工作原理如下圖:

這種負載均衡方案的有點是比較簡單,缺點是瀏覽器需要兩次請求伺服器才能完成一次訪問,效能較差;同時,重定向伺服器本身的處理能力有可能成為瓶頸,整個集群的伸縮性規模有限;使用http返回碼302重定向,有可能使搜尋引擎判斷為seo作弊,降低搜尋排名。因此實踐中很少使用這種負載均衡方案來部署。

參考:[1] 

[2] 

[3] 《大型**技術架構——核心原理與案例分析》

每天進步一點點 負載均衡之IP

首先讓我們來看看下面這張大家都非常熟悉的tcp ip協議族的分層圖 關於每層在網路資料報傳輸過程中所起到的作用不是本文的重點,本文主要是講解如何在網路層中使用ip來做伺服器集群的負載均衡,為什麼可以在這一層來做負載均衡。下面在來看ip協議的報頭格式 內紅色框內的源位址和目的位址是ip負載均衡功能的關...

每天進步一點點

很多朋友總喜歡問 成功靠什麼?其實,成功很難單一的歸納為靠什麼條件,如果一定要回答,只能從某種意義上說 很多人的成功就是靠他們每天比別人 多做一點點 正如古人有云 業精於勤,荒於嬉。這裡所說的勤,也就是比別人多做一點點,即付出多一點的勞動和努力。不要小看這一點點,又如古語說 集腋成裘,積沙成丘。如果...

每天進步一點點

在模組化程式設計時,在子模組中宣告變數 例如unsigned char aa 不需要在標頭檔案中宣告 要在主函式中呼叫,要寫成 extern unsigned char aa 而不能寫成 extern aa 寫成extern aa 則無法改變aa的值。2014年9月22日 21 12 00 品質因數...