日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django高并發負載均衡實現原理詳解

瀏覽:205日期:2024-10-11 16:46:21

1 什么是負載均衡?

當一臺服務器的性能達到極限時,我們可以使用服務器集群來提高網站的整體性能。那么,在服務器集群中,需要有一臺服務器充當調度者的角色,用戶的所有請求都會首先由它接收,調度者再根據每臺服務器的負載情況將請求分配給某一臺后端服務器去處理。

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

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

2 HTTP重定向實現負載均衡

過程描述

當用戶向服務器發起請求時,請求首先被集群調度者截獲;調度者根據某種分配策略,選擇一臺服務器,并將選中的服務器的IP地址封裝在HTTP響應消息頭部的Location字段中,并將響應消息的狀態碼設為302,最后將這個響應消息返回給瀏覽器。

當瀏覽器收到響應消息后,解析Location字段,并向該URL發起請求,然后指定的服務器處理該用戶的請求,最后將結果返回給用戶。

在使用HTTP重定向來實現服務器集群負載均衡的過程中,需要一臺服務器作為請求調度者。用戶的一項操作需要發起兩次HTTP請求,一次向調度服務器發送請求,獲取后端服務器的IP,第二次向后端服務器發送請求,獲取處理結果。

調度策略

調度服務器收到用戶的請求后,究竟選擇哪臺后端服務器處理請求,這由調度服務器所使用的調度策略決定。

隨機分配策略

當調度服務器收到用戶請求后,可以隨機決定使用哪臺后端服務器,然后將該服務器的IP封裝在HTTP響應消息的Location屬性中,返回給瀏覽器即可。

輪詢策略(RR)

調度服務器需要維護一個值,用于記錄上次分配的后端服務器的IP。那么當新的請求到來時,調度者將請求依次分配給下一臺服務器。

由于輪詢策略需要調度者維護一個值用于記錄上次分配的服務器IP,因此需要額外的開銷;此外,由于這個值屬于互斥資源,那么當多個請求同時到來時,為了避免線程的安全問題,因此需要鎖定互斥資源,從而降低了性能。而隨機分配策略不需要維護額外的值,也就不存在線程安全問題,因此性能比輪詢要高。

優缺點分析

采用HTTP重定向來實現服務器集群的負載均衡實現起來較為容易,邏輯比較簡單,但缺點也較為明顯。

在HTTP重定向方法中,調度服務器只在客戶端第一次向網站發起請求的時候起作用。當調度服務器向瀏覽器返回響應信息后,客戶端此后的操作都基于新的URL進行的(也就是后端服務器),此后瀏覽器就不會與調度服務器產生關系,進而會產生如下幾個問題:

由于不同用戶的訪問時間、訪問頁面深度有所不同,從而每個用戶對各自的后端服務器所造成的壓力也不同。而調度服務器在調度時,無法知道當前用戶將會對服務器造成多大的壓力,因此這種方式無法實現真正意義上的負載均衡,只不過是把請求次數平均分配給每臺服務器罷了。若分配給該用戶的后端服務器出現故障,并且如果頁面被瀏覽器緩存,那么當用戶再次訪問網站時,請求都會發給出現故障的服務器,從而導致訪問失敗

3 DNS負載均衡

DNS是什么

在了解DNS負載均衡之前,我們首先需要了解DNS域名解析的過程。

我們知道,數據包采用IP地址在網絡中傳播,而為了方便用戶記憶,我們使用域名來訪問網站。那么,我們通過域名訪問網站之前,首先需要將域名解析成IP地址,這個工作是由DNS完成的。也就是域名服務器。

我們提交的請求不會直接發送給想要訪問的網站,而是首先發給域名服務器,它會幫我們把域名解析成IP地址并返回給我們。我們收到IP之后才會向該IP發起請求。

那么,DNS服務器有一個天然的優勢,如果一個域名指向了多個IP地址,那么每次進行域名解析時,DNS只要選一個IP返回給用戶,就能夠實現服務器集群的負載均衡。

具體做法

首先需要將我們的域名指向多個后端服務器(將一個域名解析到多個IP上),再設置一下調度策略,那么我們的準備工作就完成了,接下來的負載均衡就完全由DNS服務器來實現。

當用戶向我們的域名發起請求時,DNS服務器會自動地根據我們事先設定好的調度策略選一個合適的IP返回給用戶,用戶再向該IP發起請求。

調度策略

一般DNS提供商會提供一些調度策略供我們選擇,如隨機分配、輪詢、根據請求者的地域分配離他最近的服務器。

優缺點分析DNS負載均衡最大的優點就是配置簡單。服務器集群的調度工作完全由DNS服務器承擔,那么我們就可以把精力放在后端服務器上,保證他們的穩定性與吞吐量。而且完全不用擔心DNS服務器的性能,即便是使用了輪詢策略,它的吞吐率依然卓越。

此外,DNS負載均衡具有較強了擴展性,你完全可以為一個域名解析較多的IP,而且不用擔心性能問題。

但是,由于把集群調度權交給了DNS服務器,從而我們沒辦法隨心所欲地控制調度者,沒辦法定制調度策略。

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

此外,當我們發現某一臺后端服務器發生故障時,即使我們立即將該服務器從域名解析中去除,但由于DNS服務器會有緩存,該IP仍然會在DNS中保留一段時間,那么就會導致一部分用戶無法正常訪問網站。這是一個致命的問題!好在這個問題可以用動態DNS來解決。

動態DNS動態DNS能夠讓我們通過程序動態修改DNS服務器中的域名解析。從而當我們的監控程序發現某臺服務器掛了之后,能立即通知DNS將其刪掉。

綜上所述DNS負載均衡是一種粗獷的負載均衡方法,這里只做介紹,不推薦使用。

4 反向代理負載均衡

什么是反向代理負載均衡?反向代理服務器是一個位于實際服務器之前的服務器,所有向我們網站發來的請求都首先要經過反向代理服務器,服務器根據用戶的請求要么直接將結果返回給用戶,要么將請求交給后端服務器處理,再返回給用戶。

之前我們介紹了用反向代理服務器實現靜態頁面和常用的動態頁面的緩存。接下來我們介紹反向代理服務器更常用的功能——實現負載均衡。

我們知道,所有發送給我們網站的請求都首先經過反向代理服務器。那么,反向代理服務器就可以充當服務器集群的調度者,它可以根據當前后端服務器的負載情況,將請求轉發給一臺合適的服務器,并將處理結果返回給用戶。

優點

隱藏后端服務器。

與HTTP重定向相比,反向代理能夠隱藏后端服務器,所有瀏覽器都不會與后端服務器直接交互,從而能夠確保調度者的控制權,提升集群的整體性能。

故障轉移

與DNS負載均衡相比,反向代理能夠更快速地移除故障結點。當監控程序發現某一后端服務器出現故障時,能夠及時通知反向代理服務器,并立即將其刪除。

合理分配任務

HTTP重定向和DNS負載均衡都無法實現真正意義上的負載均衡,也就是調度服務器無法根據后端服務器的實際負載情況分配任務。但反向代理服務器支持手動設定每臺后端服務器的權重。我們可以根據服務器的配置設置不同的權重,權重的不同會導致被調度者選中的概率的不同。

缺點

調度者壓力過大

由于所有的請求都先由反向代理服務器處理,那么當請求量超過調度服務器的最大負載時,調度服務器的吞吐率降低會直接降低集群的整體性能。

制約擴展

當后端服務器也無法滿足巨大的吞吐量時,就需要增加后端服務器的數量,可沒辦法無限量地增加,因為會受到調度服務器的最大吞吐量的制約。

粘滯會話

反向代理服務器會引起一個問題。若某臺后端服務器處理了用戶的請求,并保存了該用戶的session或存儲了緩存,那么當該用戶再次發送請求時,無法保證該請求仍然由保存了其Session或緩存的服務器處理,若由其他服務器處理,先前的Session或緩存就找不到了。

解決辦法1:

可以修改反向代理服務器的任務分配策略,以用戶IP作為標識較為合適。相同的用戶IP會交由同一臺后端服務器處理,從而就避免了粘滯會話的問題。

解決辦法2:

可以在Cookie中標注請求的服務器ID,當再次提交請求時,調度者將該請求分配給Cookie中標注的服務器處理即可。

5 負載均衡組件

1.1、apache

—— 它是Apache軟件基金會的一個開放源代碼的跨平臺的網頁服務器,屬于老牌的web服務器了,支持基于Ip或者域名的虛擬主機,支持代理服務器,支持安全Socket層(SSL)等等,目前互聯網主要使用它做靜態資源服務器,也可以做代理服務器轉發請求(如:圖片鏈等),結合tomcat等servlet容器處理jsp。

1.2、ngnix

—— 俄羅斯人開發的一個高性能的 HTTP和反向代理服務器。由于Nginx 超越 Apache 的高性能和穩定性,使得國內使用 Nginx 作為 Web 服務器的網站也越來越多,其中包括新浪博客、新浪播客、網易新聞、騰訊網、搜狐博客等門戶網站頻道等,在3w以上的高并發環境下,ngnix處理能力相當于apache的10倍。

參考:apache和tomcat的性能分析和對比(Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建勝過Apache十倍的Web服務器(第6版)[原創])

1.3、lvs

—— Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。由畢業于國防科技大學的章文嵩博士于1998年5月創立,可以實現LINUX平臺下的簡單負載均衡。了解更多,訪問官網:http://zh.linuxvirtualserver.org/。

1.4、HAProxy

—— HAProxy提供高可用性、負載均衡以及基于TCP和HTTP應用的代理,支持虛擬主機,它是免費、快速并且可靠的一種解決方案。HAProxy特別適用于那些負載特大的web站點, 這些站點通常又需要會話保持或七層處理。HAProxy運行在當前的硬件上,完全可以支持數以萬計的并發連接。并且它的運行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上.

1.5、keepalived

—— 這里說的keepalived不是apache或者tomcat等某個組件上的屬性字段,它也是一個組件,可以實現web服務器的高可用(HA high availably)。它可以檢測web服務器的工作狀態,如果該服務器出現故障被檢測到,將其剔除服務器群中,直至正常工作后,keepalive會自動檢測到并加入到服務器群里面。實現主備服務器發生故障時ip瞬時無縫交接。它是LVS集群節點健康檢測的一個用戶空間守護進程,也是LVS的引導故障轉移模塊(director failover)。Keepalived守護進程可以檢查LVS池的狀態。如果LVS服務器池當中的某一個服務器宕機了。keepalived會通過一 個setsockopt呼叫通知內核將這個節點從LVS拓撲圖中移除。

1.6、memcached

—— 它是一個高性能分布式內存對象緩存系統。當初是Danga Interactive為了LiveJournal快速發展開發的系統,用于對業務查詢數據緩存,減輕數據庫的負載。其守護進程(daemon)是用C寫的,但是客戶端支持幾乎所有語言(客戶端基本上有3種版本[memcache client for Java;spymemcached;xMecache]),服務端和客戶端通過簡單的協議通信;在memcached里面緩存的數據必須序列化。

1.7、terracotta

—— 是一款由美國Terracotta公司開發的著名開源Java集群平臺。它在JVM與Java應用之間實現了一個專門處理集群功能的抽象層,允許用戶在不改變系統代碼的情況下實現java應用的集群。支持數據的持久化、session的復制以及高可用(HA)。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品手机在线播放| 亚洲一区区二区| 亚洲综合不卡| 日韩高清在线不卡| 国产伦一区二区三区| 狠狠干综合网| 91精品福利| 午夜日韩福利| 亚洲欧美日韩在线观看a三区| 欧美日韩国产精品一区二区亚洲| 国产一区91| 精品视频91| 国产精品视频一区二区三区| 麻豆久久精品| 日韩精品亚洲aⅴ在线影院| 久久精品三级| 91精品丝袜国产高跟在线| 日本va欧美va欧美va精品| 欧美亚洲国产日韩| 久久国内精品视频| 国产精品网址| 亚洲va中文在线播放免费| 亚洲资源av| 精品国产a一区二区三区v免费| 91av一区| 蜜桃久久av一区| 蜜臀国产一区| 国产高清久久| 麻豆成人91精品二区三区| 国产精品7m凸凹视频分类| 日韩精品欧美大片| 久久精品九色| av亚洲免费| 欧美日韩国产在线观看网站| 欧美日韩国产一区二区在线观看| 蜜桃一区二区三区在线观看| 国产精品1区| 一区二区国产在线观看| 国产伊人精品| 久久精品 人人爱| 97精品国产一区二区三区| 欧美日韩国产一区二区三区不卡 | 久久的色偷偷| 国产精品日本| 高清不卡亚洲| 亚州av一区| 国产毛片一区| 在线一区电影| 99国产精品视频免费观看一公开| 精品五月天堂| 国产剧情在线观看一区| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 亚洲欧美视频| 女人天堂亚洲aⅴ在线观看| 精品日韩一区| 精品国产一区二| 欧美精品福利| 99热精品在线观看| 日本一区二区高清不卡| 国产精品久久久久9999高清| 鲁大师成人一区二区三区| 99久久精品国产亚洲精品| 日韩免费福利视频| 国产欧美自拍| 久久爱www.| 国产精品videossex| 国产精品成人自拍| 成人一区不卡| 在线成人动漫av| 在线成人直播| 水蜜桃久久夜色精品一区的特点| 四虎4545www国产精品| 一区二区视频欧美| 国产亚洲精品美女久久久久久久久久| 日本亚洲不卡| 国产96在线亚洲| 日韩高清欧美| 国产99久久| 国产午夜久久| 天堂av一区| 欧美精品观看| 综合欧美亚洲| 黄色在线观看www| 欧美日中文字幕| 日本午夜精品久久久久| 日本视频一区二区| 久久婷婷亚洲| 日韩和欧美一区二区三区| 久久精品资源| 亚洲婷婷在线| 国产不卡精品| 国产精品腿扒开做爽爽爽挤奶网站| 伊人影院久久| 天堂成人国产精品一区| 国产欧美日韩一区二区三区在线| 精品久久久久久久| 久久久久99| 日韩精品一区二区三区中文| 中文一区一区三区高中清不卡免费| 久久免费大视频| 日韩不卡在线观看日韩不卡视频| 午夜av成人| 国产欧美日韩影院| 国户精品久久久久久久久久久不卡| 国产一区二区视频在线看| 日韩在线麻豆| 亚洲高清成人| 日本aⅴ精品一区二区三区| 国产 日韩 欧美 综合 一区| 欧美亚洲tv| 欧美一区久久| 99pao成人国产永久免费视频| 国产精品777777在线播放| 亚洲尤物在线| 亚洲精品网址| 亚洲综合在线电影| 国产精品yjizz视频网| 老鸭窝一区二区久久精品| 日本在线一区二区三区| 老牛国产精品一区的观看方式| 精品亚洲精品| 欧美日韩视频免费观看| 国产精品一区二区精品视频观看| 婷婷综合在线| 亚洲黄色免费av| 日韩一区三区| 欧美日韩免费观看视频| 久久久久亚洲| 日韩欧美一区二区三区免费看| 水蜜桃久久夜色精品一区的特点| 精品国产网站| 国产欧美一区二区三区精品酒店| 国产精品黄色片| 国产乱人伦精品一区| 一区二区三区国产盗摄| 性色一区二区| 综合一区二区三区| 欧美日韩日本国产亚洲在线| 国产资源在线观看入口av| 国产一区三区在线播放| 日韩黄色大片| 免费视频最近日韩| 免费成人av在线播放| 国产精品对白久久久久粗| 精品视频黄色| 超碰在线99| 国产综合色区在线观看| 欧美高清一区| 中文字幕av一区二区三区四区| 日韩欧美中文字幕一区二区三区| 日本亚洲三级在线| 国产精品久久久久久久久免费高清| 国产毛片精品| 免费中文字幕日韩欧美| 五月亚洲婷婷 | 久久av偷拍| 国产精品一线| 国产欧洲在线| 久久亚洲视频| 国产精品网站在线看| 精品欧美一区二区三区在线观看| 亚洲性图久久| 麻豆精品在线观看| 成人在线免费观看91| 午夜亚洲精品| 国产精品一页| 亚洲黄页一区| 国产欧美日韩精品高清二区综合区| 久久精品av| 综合日韩在线| 国产一区日韩欧美| 国产福利资源一区| 亚洲高清影视| 国产精品毛片一区二区在线看| 亚洲一区亚洲| 中文在线免费视频| 国产日本久久| 视频一区在线视频| 国产一区2区| 天堂成人国产精品一区| 久久精品av| 日韩国产激情| 视频在线观看一区| 国产亚洲毛片在线| 国产精品99一区二区三| 亚洲免费福利一区| 欧美精品一区二区三区精品| 欧美日韩精品一区二区三区视频 | 日韩美女国产精品| 国产字幕视频一区二区| 鲁大师成人一区二区三区| 国产videos久久| 日韩高清不卡在线| 蜜臀久久99精品久久久久久9| 国产va免费精品观看精品视频| 日本不卡在线视频| 亚洲最大av| 麻豆亚洲精品| 午夜亚洲福利在线老司机| 久久国产精品亚洲77777|