新聞中心
分布式 | 不可不知的負(fù)載均衡
作者: 田維常 2021-01-27 09:45:17
服務(wù)器
分布式 那今天我們就用生活中的故事來聊聊負(fù)載均衡。文章中部分可能有點(diǎn)啰嗦,但是為了更好能讓大家理解,我也是拼了

創(chuàng)新互聯(lián)于2013年成立,先為五指山等服務(wù)建站,五指山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為五指山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
最近有小伙伴在后臺(tái)留言,讓我寫一篇負(fù)載均衡的文章,說網(wǎng)上文章其實(shí)已經(jīng)很多了,每次都覺得某某文章講的不錯(cuò),可是一旦過段時(shí)間,啥都不記得了。那今天我們就用生活中的故事來聊聊負(fù)載均衡。文章中部分可能有點(diǎn)啰嗦,但是為了更好能讓大家理解,我也是拼了,真真切切的想讓大家掌握知識(shí)。
什么是負(fù)載均衡?
負(fù)載均衡,英文名稱為Load Balance,其含義就是指將負(fù)載(工作任務(wù))進(jìn)行平衡、分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行運(yùn)行,例如FTP服務(wù)器、Web服務(wù)器、企業(yè)核心應(yīng)用服務(wù)器和其它主要任務(wù)服務(wù)器等,從而協(xié)同完成工作任務(wù)。
負(fù)載均衡通常有兩種目的:均攤壓力和提供冗余(也可以理解為備份)。
生活案列
上面還看不懂的話,我們繼續(xù)用生活案列來說:
高速路出口處,如果只有一個(gè)出口時(shí),突然有一天出現(xiàn)大量車輛(假設(shè)大家都沒有辦理ETC)這個(gè)高速出口下高速, 比如有幾百兩這會(huì)都要下高速,但是下高速要交過路費(fèi),每輛車至少也要耽擱幾分鐘,幾百輛!!!意味著后面的可能要等幾個(gè)小時(shí),如果有多個(gè)出口呢?那就沒必要等那么久了。
如果在增加一個(gè)出口,這時(shí)候就是兩個(gè)出口可以均攤車輛下高速,還得分收費(fèi)員快慢,車輛3看到車1那邊要快點(diǎn),然后就跟上車1。
如果再增加n個(gè)就可以想象效果了。但是太多了,貌似也會(huì)造成資源浪費(fèi),很多出口一天都沒有幾輛車出入,如果搞得太多豈不浪費(fèi),所以我們一般看到大多數(shù)都是兩個(gè),可以理解備用急用。
「我們就把司機(jī)理解為負(fù)載均衡器,可以根據(jù)前方路況進(jìn)行判別走哪個(gè)出口。判別的方法就可以理解為負(fù)載均衡算法。」
用我們技術(shù)領(lǐng)域的術(shù)語叫做冗余。收費(fèi)員的速度我就可以理解為我們系統(tǒng)某個(gè)服務(wù)的性能。
技術(shù)領(lǐng)域
下面用一張圖來描述我們技術(shù)領(lǐng)域的負(fù)載均衡:
結(jié)合生活中的場景和技術(shù)領(lǐng)域的場景一起理解更酸爽。
注意:集群指的是我們同一個(gè)App應(yīng)用服務(wù)的部署多個(gè)節(jié)點(diǎn),集群的主要目的就是為了分擔(dān)壓力的。負(fù)載均衡器(系統(tǒng))就可以理解為指揮員。來一個(gè)請求,指揮員把這個(gè)請求根據(jù)一定方法交給集群中的某個(gè)服務(wù)。指揮員就可以按照各種方式進(jìn)行分配請求到集群中的某個(gè)服務(wù)。隨機(jī)給、排隊(duì)給、誰反應(yīng)快給誰等方法,也就是形成了負(fù)載均衡算法。
以上比喻僅僅是個(gè)人理解。
負(fù)載均衡的種類
DNS
(Domain Name System 域名系統(tǒng) )它作為將域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫,能夠使人更方便地訪問互聯(lián)網(wǎng)。DNS使用TCP和UDP端口53。當(dāng)前,對(duì)于每一級(jí)域名長度的限制是63個(gè)字符,域名總長度則不能超過253個(gè)字符。DNS是最簡單也是最常見的負(fù)載均衡方式,一般用來實(shí)現(xiàn)“地理級(jí)別”的負(fù)載均衡,比如說:北方人訪問北京的機(jī)房,南方人訪問廣州的機(jī)房,西方人訪問成都的機(jī)房。DNS負(fù)載均衡的本質(zhì)是DNS解析同一個(gè)域名可以返回不同的IP地址。比如說:https://www.sina.com.cn/在北方的用戶使用時(shí)會(huì)解析成10.210.1.12(北京機(jī)房)返回,南方的用戶使用時(shí)會(huì)解析成14.213.164.27返回(廣州機(jī)房)。
DNS簡單示意圖
優(yōu)點(diǎn)
- 配置簡單,無成本費(fèi)用
- 將負(fù)載均衡的工作交給了DNS服務(wù)器,省去了管理的麻煩。
缺點(diǎn)
- 記錄的添加與修改是需要一定時(shí)間才能夠生效的(因?yàn)镈NS緩存了A記錄)。一旦有一臺(tái)服務(wù)器壞了需要下線,即使修改了A記錄,要使其生效也需要較長的時(shí)間,這段時(shí)間,DNS仍然會(huì)將域名解析到已下線的服務(wù)器上,最終導(dǎo)致用戶訪問失敗。
- 不能按需分配負(fù)載,DNS并不知道各服務(wù)器的真實(shí)負(fù)載情況,所以負(fù)載效果不是很好
實(shí)際的情況:在實(shí)際的項(xiàng)目部署,我們一般會(huì)將部分服務(wù)器使用DNS解析,利用域名解析作為第一級(jí)負(fù)載均衡.再在服務(wù)器中使用nginx負(fù)載均衡作為第二級(jí)負(fù)載均衡。
硬件負(fù)載均衡
硬件負(fù)載均衡是通過單獨(dú)的設(shè)備來實(shí)現(xiàn)負(fù)載均衡的功能,這類設(shè)備和路由器交換機(jī)有那么一些類似,更或者可以理解為一個(gè)用于負(fù)載均衡的基礎(chǔ)網(wǎng)絡(luò)設(shè)備。目前業(yè)界主要有兩款硬件負(fù)載均衡:F5和A10。這類設(shè)備性能好,功能強(qiáng)大,但是價(jià)格可以用昂貴來形容,一般只有銀行,國企等大型有錢的企業(yè)開會(huì)考慮使用此類設(shè)備,本人也只是在銀行里見識(shí)過F5。至于A10沒接觸過就不撤了。
優(yōu)點(diǎn)
功能強(qiáng)大:全面支持各層級(jí)的負(fù)載均衡,支持各種負(fù)載均衡算法,支持全局負(fù)載均衡。
性能好:一般軟件負(fù)載均衡能支撐10w+并發(fā)已經(jīng)很不錯(cuò)了,但是硬件的負(fù)載均衡卻可以支持100w+以上的并發(fā)。
高穩(wěn)定性:因?yàn)槭巧虡I(yè)品,所以經(jīng)過了良好嚴(yán)格的測試,經(jīng)過大規(guī)模的使用,所以穩(wěn)定非常高。
安全性高:硬件負(fù)載均衡設(shè)備除了能處理負(fù)載均衡以外,還具有防火墻、防DDOS攻擊等效果。
缺點(diǎn)
價(jià)格昂貴:我記得之前銀行購買F5花了上百萬,據(jù)說還有更貴的,所以價(jià)格可想而知。
擴(kuò)展性不好:硬件設(shè)備可以根據(jù)業(yè)務(wù)進(jìn)行配置,但無法進(jìn)行擴(kuò)展和定制化。
軟件負(fù)載均衡
軟件負(fù)載均衡是通過負(fù)載均衡軟件來實(shí)現(xiàn)負(fù)載均衡功能的。常見的負(fù)載均衡軟件有LVS和Nginx。其中LVS是Linux內(nèi)核的四層負(fù)載均衡,四層和七層的區(qū)別在于他們協(xié)議和靈活性的不同。Nginx是7層負(fù)載均衡,支持HTTP,E-mail協(xié)議,而LVS是四層負(fù)載均衡,所以和協(xié)議無關(guān),基本上所有應(yīng)用都可以做到,比如說:聊天、數(shù)據(jù)庫等。
以下是Nginx的負(fù)載均衡簡單示意圖:
優(yōu)點(diǎn)
- nginx由C編寫,同樣的web服務(wù)器,占用的資源和內(nèi)存低性能高。
- 當(dāng)啟動(dòng)nginx服務(wù)器,會(huì)生成一個(gè)master進(jìn)程,master進(jìn)程會(huì)fork出多個(gè)worker進(jìn)程,由worker線程處理客戶端的請求。
- nginx支持高并發(fā),每個(gè)worker子進(jìn)程是獨(dú)立平等的,當(dāng)有客戶端請求時(shí),worker進(jìn)程公平競爭,搶到的worker進(jìn)程會(huì)把請求提交給后端服務(wù)器,當(dāng)后端服務(wù)器沒有及時(shí)響應(yīng)時(shí),此worker進(jìn)程會(huì)繼續(xù)接收下一個(gè)request,當(dāng)上一個(gè)請求有響應(yīng)后會(huì)觸發(fā)事件,此worker進(jìn)程繼續(xù)之前的執(zhí)行,知道響應(yīng)結(jié)束。一個(gè)request不會(huì)被兩個(gè)worker進(jìn)程執(zhí)行。
- nginx支持反向代理(用戶有感知的訪問叫正向代理如訪問youtube,用戶無感知訪問叫反向代理如負(fù)載均衡),支持7層負(fù)載均衡(拓展負(fù)載均衡的好處)。
- nginx是異步非阻塞型處理請求(第三點(diǎn)印證),采用的epollandqueue模式,apache是阻塞型處理請求。
- nginx處理靜態(tài)文件速度快(原因:
- nginx高度模塊化,配置簡單。
- nginx是單進(jìn)程多線程)。
缺點(diǎn)
- 對(duì)比apache不穩(wěn)定,由于是單進(jìn)程多線程,進(jìn)程死掉會(huì)影響很多用戶。
負(fù)載均衡有什么用?
- 「流量分發(fā)」負(fù)載均衡能對(duì)多臺(tái)主機(jī)流量進(jìn)行分發(fā),提高用戶系統(tǒng)的業(yè)務(wù)處理能力,提升服務(wù)可用性
- 「會(huì)話保持」在會(huì)話周期內(nèi),會(huì)話保持可使來自同一IP或網(wǎng)段的請求被分發(fā)到同一臺(tái)后端服務(wù)器上。
- 「健康檢查」支持自定義健康檢查方式和頻率,可定時(shí)檢查后端主機(jī)運(yùn)行狀態(tài),提供故障轉(zhuǎn)移,實(shí)現(xiàn)高可用;
- 「負(fù)載均衡」解決并發(fā)壓力,提高應(yīng)用處理性能(增加吞吐量,加強(qiáng)網(wǎng)絡(luò)處理能力);
- 提高擴(kuò)展性通過添加或減少服務(wù)器數(shù)量,提供網(wǎng)站伸縮性(擴(kuò)展性);
- 提高安全性安全防護(hù),在負(fù)載均衡器上做一些過濾,黑白名單、防盜鏈等處理;
常用負(fù)載均衡算法
輪訓(xùn)
負(fù)載均衡系統(tǒng)接收到請求后,按照一定順序?qū)⒄埱蠓职l(fā)給服務(wù)器上。輪訓(xùn)是一種簡單的負(fù)載均衡算法策略,不會(huì)去關(guān)注服務(wù)器狀態(tài)。
優(yōu)點(diǎn):如果服務(wù)器都是正常的,那么輪訓(xùn)是最理想的,因?yàn)樗鼤?huì)使得每個(gè)服務(wù)都得到相等量的請求,可以用"雨露均沾"來形容。
缺點(diǎn):上面的有點(diǎn)是理想狀態(tài)的,但是現(xiàn)實(shí)往往不是那樣的,現(xiàn)實(shí)還是很骨感滴,線上系統(tǒng)往往出現(xiàn)各種各樣的問題,比如:當(dāng)有一臺(tái)服務(wù)器掛了,輪訓(xùn)算法不會(huì)管服務(wù)器狀態(tài),就是會(huì)導(dǎo)致大量的請求到一臺(tái)已經(jīng)掛掉的服務(wù)器上,從而導(dǎo)致系統(tǒng)不可用,進(jìn)而造成用戶流失。另外一種常見的問題就是有的服務(wù)器響應(yīng)快,有的響應(yīng)慢(比如32核的服務(wù)器和16核的服務(wù)器),輪訓(xùn)算法也不關(guān)注相應(yīng)快慢,所以會(huì)導(dǎo)致很多服務(wù)請求響應(yīng)時(shí)間慢,簡單的導(dǎo)致用戶體驗(yàn)不好,由于響應(yīng)時(shí)間慢甚至可能拖垮其他系統(tǒng)。
加權(quán)輪訓(xùn)
負(fù)載均衡系統(tǒng)根據(jù)服務(wù)器權(quán)重進(jìn)行請求任務(wù)分派到對(duì)應(yīng)的服務(wù)器上,這里的權(quán)重一般是根據(jù)系統(tǒng)硬件配置進(jìn)行靜態(tài)配置的,采用動(dòng)態(tài)的方式計(jì)算會(huì)更加適合業(yè)務(wù),但是復(fù)雜度相比簡單的輪訓(xùn)就高很多。
加權(quán)輪訓(xùn)是輪訓(xùn)的一種特殊方式,主要目的是解決服務(wù)器處理能力的差異問題,比如:集群中有的服務(wù)器是32核,有的老系統(tǒng)卻是16核,那么理論上我們可以對(duì)其進(jìn)行權(quán)重配置值,即就是32核服務(wù)器的處理能力是16核的兩倍,負(fù)載均衡算法權(quán)重比例調(diào)整為2:1,讓更多的請求分發(fā)給32核的服務(wù)器。
加權(quán)輪訓(xùn)解決了輪訓(xùn)算法中誤服根據(jù)服務(wù)器的配置的差異任務(wù)進(jìn)行更好的分配的問題,其實(shí)還是會(huì)存在無法根據(jù)服務(wù)器的狀態(tài)差異性進(jìn)行請求任務(wù)分配的問題。
負(fù)載最低優(yōu)先
負(fù)載系統(tǒng)將請求分配給當(dāng)前負(fù)載最低的服務(wù)器,這里的負(fù)載根據(jù)不同請求類型和業(yè)務(wù)處理場景,可以用不同的指標(biāo)來衡量。比如以下幾個(gè)場景,
- LVS這種4層網(wǎng)絡(luò)負(fù)載均衡設(shè)備,可以以連接數(shù)來判斷服務(wù)器的狀態(tài),服務(wù)器連接數(shù)量越大,表明服務(wù)器壓力就越大。
- Nginx這種7層網(wǎng)絡(luò)負(fù)載均衡系統(tǒng),可以以HTTP請求數(shù)量判斷服務(wù)器的狀態(tài)(Nginx內(nèi)置的負(fù)載均衡算法不支持這種方式,需要自行進(jìn)行擴(kuò)展)。
- 如果我們是自己研發(fā)負(fù)載均衡系統(tǒng),可以根據(jù)業(yè)務(wù)特點(diǎn)來選擇衡量系統(tǒng)壓力的指標(biāo)。如果CPU是密集型,可以以CPU負(fù)載來衡量系統(tǒng)的壓力;如果是IO密集型,則可以以IO負(fù)載來衡量系統(tǒng)壓力。
負(fù)載最低優(yōu)先算法解決了輪訓(xùn)算法中無法感知服務(wù)器狀態(tài)的問題,但是由此帶來的代價(jià)是復(fù)雜度增加很多,比如:
- 最少鏈接數(shù)優(yōu)先的算法要求負(fù)載系統(tǒng)統(tǒng)計(jì)每個(gè)服務(wù)器當(dāng)前簡歷的鏈接,其應(yīng)用場景僅限于負(fù)載均衡接收的任何請求都會(huì)轉(zhuǎn)發(fā)給服務(wù)器進(jìn)行處理,否則如果負(fù)載均衡系統(tǒng)和服務(wù)之間是固定的連接池方式,就不適合采取這種算法。LVS可以采取這種算法進(jìn)行負(fù)載均衡,而一個(gè)通過連接池的方式鏈接數(shù)據(jù)庫Mysql集群的負(fù)載均衡系統(tǒng)就不適合采取這種算法進(jìn)行負(fù)載均衡了。
- CPU負(fù)載均衡最低優(yōu)先的算法要求負(fù)載均衡系統(tǒng)以某種方式收集每個(gè)服務(wù)器的CPU的具體負(fù)載情況,同時(shí)要確定是以一分鐘的負(fù)載標(biāo)準(zhǔn),還是以10分鐘、15分鐘的負(fù)載標(biāo)準(zhǔn),不存在1分鐘肯定比15分鐘的好或差。不同業(yè)務(wù)最優(yōu)的時(shí)間間隔也是不一樣的,時(shí)間間隔太短容易造成頻繁波動(dòng),時(shí)間太長可能造成峰值來臨時(shí)響應(yīng)緩慢。
負(fù)載最低優(yōu)先的算法基板上能夠很完美解決了輪訓(xùn)算法的缺點(diǎn),也因?yàn)椴捎秘?fù)載最低優(yōu)先算法后,負(fù)載均衡系統(tǒng)需要感知服務(wù)器當(dāng)前運(yùn)行狀態(tài),此時(shí),同樣造成代價(jià)上升很多。對(duì)于開發(fā)者來說也許輪訓(xùn)算法只要簡短的代碼就可以實(shí)現(xiàn),然而負(fù)載最低優(yōu)先算法需要大量的代碼來實(shí)現(xiàn)。
負(fù)載最低優(yōu)先看起來是解決了輪訓(xùn)中的缺點(diǎn),然后由于其復(fù)雜度的提升,導(dǎo)致真正使用中比例還不如輪訓(xùn)或者輪訓(xùn)加權(quán)算法。
性能最優(yōu)
負(fù)載最低優(yōu)先算法是站在服務(wù)器的角度來進(jìn)行請求分配的,而性能最優(yōu)算法是站在客戶端的角度進(jìn)行分配的,優(yōu)先將請求分配給處理速度快的服務(wù)器,通過這種方式達(dá)到了最快響應(yīng)給客戶端。
性能優(yōu)先其實(shí)也負(fù)載最低優(yōu)先有點(diǎn)類似,都是需要感知服務(wù)器的狀態(tài),與之不同的是性能最優(yōu)是通過響應(yīng)時(shí)間這個(gè)標(biāo)準(zhǔn),在外部進(jìn)行感應(yīng)服務(wù)器狀態(tài)而已,同樣的實(shí)現(xiàn)復(fù)雜度也很高,主要體現(xiàn)在以下方面:
- 負(fù)載均衡系統(tǒng)需要收集每次請求的響應(yīng)時(shí)間,如果在大量請求處理的場景下,這種收集再加上響應(yīng)時(shí)間的統(tǒng)計(jì)本身也會(huì)消耗系統(tǒng)的性能。
- 為了減少這種統(tǒng)計(jì)上的消耗,可以采取采樣的方式進(jìn)行統(tǒng)計(jì),即就是不用很完全的去統(tǒng)計(jì)所有服務(wù)器的所有請求時(shí)間,而是抽樣統(tǒng)計(jì)部分任務(wù)的響應(yīng)時(shí)間來估算整體請求所花的響應(yīng)時(shí)間。采樣統(tǒng)計(jì)雖然能減輕性能的消耗,但使得實(shí)現(xiàn)的復(fù)雜度增加了很多,因?yàn)橐_定合適的采樣率,采樣率太低會(huì)導(dǎo)致數(shù)據(jù)的正確性,采樣率高同樣會(huì)造成性能的消耗,要找到一個(gè)合適的采樣率的復(fù)雜度也是可想而知的。
- 無論全部統(tǒng)計(jì),還是采樣統(tǒng)計(jì),都需要選擇合適的周期,是30秒性能最優(yōu)還是1分鐘最優(yōu)?目前是沒有標(biāo)準(zhǔn)的周期,都是需要具體業(yè)務(wù)場景進(jìn)行決策,是不是感覺到了其復(fù)雜性,尤其是線上系統(tǒng)需要不斷的調(diào)試,然后找出相對(duì)合適的標(biāo)準(zhǔn)。
Hash類
負(fù)載均衡系統(tǒng)根據(jù)請求中某些關(guān)鍵字進(jìn)行hash運(yùn)算,得到的相同值得分發(fā)到同一臺(tái)服務(wù)器上去,這樣做的目的主要是為了滿足特定的業(yè)務(wù)需求,比如:
- 源地址Hash:將來源于同一個(gè)IP地址的請求分配給同一個(gè)服務(wù)器進(jìn)行處理,適合于存在事務(wù)、會(huì)話的業(yè)務(wù)。例如:當(dāng)我們通過瀏覽器登錄網(wǎng)上銀行時(shí),會(huì)生成一個(gè)會(huì)話信息,這個(gè)會(huì)話是臨時(shí)的,關(guān)閉瀏覽器后就會(huì)失效。網(wǎng)上銀行后臺(tái)無須持久會(huì)話信息,只需要在某臺(tái)服務(wù)器臨時(shí)保留這個(gè)會(huì)話就可以了,但需要保證用戶在會(huì)話存在期間,每次請求都能訪問在同一個(gè)服務(wù)器,這種業(yè)務(wù)場景就是通過源地址hash來實(shí)現(xiàn)的。
- ID hash :將某個(gè)ID表示的業(yè)務(wù)分配到同一臺(tái)服務(wù)器上進(jìn)行處理,比如:userId session id。上述的網(wǎng)上銀行登錄的例子,用session id hash可以實(shí)現(xiàn)同一個(gè)會(huì)話期間,用戶每次都是訪問同一臺(tái)服務(wù)器上的目的。
負(fù)載均衡算法應(yīng)用
Dubbo中使用了哪些負(fù)載均衡算法?
- Random LoadBalance(隨機(jī)算法,默認(rèn))
- RoundRobin LoadBalance(權(quán)重輪訓(xùn)算法)
- LeastAction LoadBalance(最少活躍調(diào)用數(shù)算法)
- ConsistentHash LoadBalance(一致性Hash法)
類圖
nginx中使用了哪些負(fù)載均衡算法?
「round robin(默認(rèn))」:輪詢方式,依次將請求分配到各個(gè)后臺(tái)服務(wù)器中,默認(rèn)的負(fù)載均衡方式。適用于后臺(tái)機(jī)器性能一致的情況。掛掉的機(jī)器可以自動(dòng)從服務(wù)列表中剔除。
「weight」:根據(jù)權(quán)重來分發(fā)請求到不同的機(jī)器中,指定輪詢幾率,weight和訪問比率成正比,用于后端服務(wù)器性能不均的情況。 例如:
- upstream bakend {
- server 192.168.0.14 weight=10;
- server 192.168.0.15 weight=10;
- }
「IP_hash」:根據(jù)請求者ip的hash值將請求發(fā)送到后臺(tái)服務(wù)器中,可以保證來自同一ip的請求被打到固定的機(jī)器上,可以解決session問題。例如:
- upstream bakend {
- ip_hash;
- server 192.168.0.14:88;
- server 192.168.0.15:80;
- }
「url_hash(第三方)」:根據(jù)請求的url的hash值將請求分到不同的機(jī)器中,當(dāng)后臺(tái)服務(wù)器為緩存的時(shí)候效率高。
例如:在upstream中加入hash語句,server語句中不能寫入weight等其他的參數(shù),hash_method是使用的hash算法 。
「fair(第三方)」:根據(jù)后臺(tái)響應(yīng)時(shí)間來分發(fā)請求,響應(yīng)時(shí)間短的分發(fā)的請求多。例如:
- upstream backend {
- server server1;
- server server2;
- fair;
- }
總結(jié)
我們用生活中的故事來講述了負(fù)載均衡,講述了什么是負(fù)載均衡,負(fù)載均衡的作用,負(fù)載均衡的種類,負(fù)載均衡算法種類,以及我們在Dubbo和nginx中負(fù)載均衡算法的應(yīng)用。
本文轉(zhuǎn)載自微信公眾號(hào)「Java后端技術(shù)全棧 」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Java后端技術(shù)全棧 公眾號(hào)。
網(wǎng)頁標(biāo)題:分布式|不可不知的負(fù)載均衡
分享路徑:http://fisionsoft.com.cn/article/dhgsgip.html


咨詢
建站咨詢
