django 高併發解決方案 負載均衡

2021-10-07 14:33:25 字數 924 閱讀 4213

1.什麼是負載均衡?

當一台伺服器的效能達到極限時,我們可以使用伺服器集群來提高**的整體效能。那麼,在伺服器集群中,需要有一台伺服器充當排程者的角色,使用者的所有請求都會首先由它接收,排程者再根據每台伺服器的負載情況將請求分配給某一台後端伺服器去處理。

那麼在這個過程中,排程者如何合理分配任務,保證所有後端伺服器都將效能充分發揮,從而保持伺服器集群的整體效能最優,這就是負載均衡問題。

2.下面詳細介紹負載均衡的五種實現方式

(一)http重定向實現負載均衡

優缺點分析

dns負載均衡最大的優點就是配置簡單。伺服器集群的排程工作完全由dns伺服器承擔,那麼我們就可以把精力放在後端伺服器上,保證他們的穩定性與吞吐量。而且完全不用擔心dns伺服器的效能,即便是使用了輪詢策略,它的吞吐率依然卓越。此外,dns負載均衡具有較強了擴充套件性,你完全可以為乙個網域名稱解析較多的ip,而且不用擔心效能問題。

但是,由於把集群排程權交給了dns伺服器,從而我們沒辦法隨心所欲地控制排程者,沒辦法定製排程策略。

dns伺服器也沒辦法了解每台伺服器的負載情況,因此沒辦法實現真正意義上的負載均衡。它和http重定向一樣,只不過把所有請求平均分配給後端伺服器罷了。

此外,當我們發現某一台後端伺服器發生故障時,即使我們立即將該伺服器從網域名稱解析中去除,但由於dns伺服器會有快取,該ip仍然會在dns中保留一段時間,那麼就會導致一部分使用者無法正常訪問**。這是乙個致命的問題!好在這個問題可以用動態dns來解決。

動態dns

動態dns能夠讓我們通過程式動態修改dns伺服器中的網域名稱解析。從而當我們的監控程式發現某台伺服器掛了之後,能立即通知dns將其刪掉。

負載均衡伺服器的ip和它所管理的web 服務群的虛擬ip一致;

負載均衡資料分發過程中不修改訪問位址的ip位址,而是修改mac位址;

通過這兩點達到不修改資料報的原位址和目標位址就可以進行正常的訪問。

高併發解決方案

時常看到高併發的問題,但高併發其實是最不需要考慮的東西。為何,他虛無縹緲,很少有 真的需要這些東西,而且其中很多技術,其實你已經在用了。有這個意識就夠了,不需要時刻盯著這個問題。只有很少的 真的能達到高併發。簡單做乙個歸納,從低成本 高效能和高擴張性的角度來說有如下處理方案 1 html靜態化 2 ...

高併發解決方案

將靜態資源分離到靜態站,對靜態資源的請求打到靜態站,增加動態站的請求處理量 頁面靜態化是將程式生成的頁面儲存起來,使用模板技術如freemarker和velocity生成靜態頁面 nginx快取頁面資訊,再次請求時直接從快取中獲取,不需要重新生成,頁面快取記憶體中,提高訪問速度 具有相同處理功能的伺...

高併發解決方案

秒殺場景一般會在電商 舉行一些活動或者節假日在12306 上搶票時遇到。對於電商 中一些稀缺或者 商品,電商 一般會在約定時間點對其進行限量銷售,因為這些商品的特殊性,會吸引大量使用者前來搶購,並且會在約定的時間點同時在秒殺頁面進行搶購。限流 鑑於只有少部分使用者能夠秒殺成功,所以要限制大部分流量,...