基于Nginx的軟件負(fù)載均衡實現(xiàn)解讀
負(fù)載均衡在服務(wù)端開發(fā)中算是一個比較重要的特性。因為Nginx除了作為常規(guī)的Web服務(wù)器外,還會被大規(guī)模的用于反向代理前端,因為Nginx的異步框架可以處理很大的并發(fā)請求,把這些并發(fā)請求hold住之后就可以分發(fā)給后臺服務(wù)端(backend servers,也叫做服務(wù)池, 后面簡稱backend)來做復(fù)雜的計算、處理和響應(yīng),這種模式的好處是相當(dāng)多的:隱藏業(yè)務(wù)主機(jī)更安全,節(jié)約了公網(wǎng)IP地址,并且在業(yè)務(wù)量增加的時候可以方便地擴(kuò)容后臺服務(wù)器。
負(fù)載均衡可以分為硬件負(fù)載均衡和軟件負(fù)載均衡,前者一般是專用的軟件和硬件相結(jié)合的設(shè)備,設(shè)備商會提供完整成熟的解決方案,通常也會更加昂貴。軟件的復(fù)雜均衡以Nginx占據(jù)絕大多數(shù),本文也是基于其手冊做相應(yīng)的學(xué)習(xí)研究的。
一、基本簡介
負(fù)載均衡涉及到以下的基礎(chǔ)知識。
(1) 負(fù)載均衡算法
a. RoundRobin: 對所有的backend輪訓(xùn)發(fā)送請求,算是最簡單的方式了,也是默認(rèn)的分配方式;
b. LeastConnections(least_conn): 跟蹤和backend當(dāng)前的活躍連接數(shù)目,最少的連接數(shù)目說明這個backend負(fù)載最輕,將請求分配給他,這種方式會考慮到配置中給每個upstream分配的weight權(quán)重信息;
c. LeastTime(least_time): 請求會分配給響應(yīng)最快和活躍連接數(shù)最少的backend;
d. IPHash(ip_hash): 對請求來源IP地址計算hash值,IPv4會考慮前3個octet,IPv6會考慮所有的地址位,然后根據(jù)得到的hash值通過某種映射分配到backend;
e.Generic Hash(hash): 以用戶自定義資源(比如URL)的方式計算hash值完成分配,其可選consistent關(guān)鍵字支持一致性hash特性;
(2) 會話一致性
用戶(瀏覽器)在和服務(wù)端交互的時候,通常會在本地保存一些信息,而整個過程叫做一個會話(Session)并用唯一的Session ID進(jìn)行標(biāo)識。會話的概念不僅用于購物車這種常見情況,因為HTTP協(xié)議是無狀態(tài)的,所以任何需要邏輯上下文的情形都必須使用會話機(jī)制,此外HTTP客戶端也會額外緩存一些數(shù)據(jù)在本地,這樣就可以減少請求提高性能了。如果負(fù)載均衡可能將這個會話的請求分配到不同的后臺服務(wù)端上,這肯定是不合適的,必須通過多個backend共享這些數(shù)據(jù),效率肯定會很低下,最簡單的情況是保證會話一致性——相同的會話每次請求都會被分配到同一個backend上去。
責(zé)任編輯:任我行
-
碳中和戰(zhàn)略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
兩部門:推廣不停電作業(yè)技術(shù) 減少停電時間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
國家發(fā)改委、國家能源局:推廣不停電作業(yè)技術(shù) 減少停電時間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè)
-
碳中和戰(zhàn)略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
深度報告 | 基于分類監(jiān)管與當(dāng)量協(xié)同的碳市場框架設(shè)計方案
2020-07-21碳市場,碳排放,碳交易 -
碳市場讓重慶能源轉(zhuǎn)型與經(jīng)濟(jì)發(fā)展并進(jìn)
2020-07-21碳市場,碳排放,重慶
-
兩部門:推廣不停電作業(yè)技術(shù) 減少停電時間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
國家發(fā)改委、國家能源局:推廣不停電作業(yè)技術(shù) 減少停電時間和停電次數(shù)
2020-09-28獲得電力,供電可靠性,供電企業(yè) -
2020年二季度福建省統(tǒng)調(diào)燃煤電廠節(jié)能減排信息披露
2020-07-21火電環(huán)保,燃煤電廠,超低排放
-
四川“專線供電”身陷違法困境
2019-12-16專線供電 -
我國能源替代規(guī)范法律問題研究(上)
2019-10-31能源替代規(guī)范法律 -
區(qū)域鏈結(jié)構(gòu)對于數(shù)據(jù)中心有什么影響?這個影響是好是壞呢!