
電商網(wǎng)站是怎么處理大數(shù)據(jù)和并發(fā)架構(gòu)網(wǎng)站
今天和一個(gè)做某超市的電商的一個(gè)技術(shù)核心聊的時(shí)候,發(fā)現(xiàn)了一個(gè)很重要的信息,我不斷的去思考和挖掘它們是怎么去應(yīng)對(duì)大數(shù)據(jù)已經(jīng)淘寶的電商網(wǎng)站的架構(gòu)是如何的。其中得出一下幾點(diǎn)心得,第一:服務(wù)器負(fù)責(zé)均衡,第二:數(shù)據(jù)庫(kù)主從分離,第三:安全性。
第一點(diǎn)服務(wù)器負(fù)責(zé)均衡:
web 負(fù)載均衡的作用就是把請(qǐng)求均勻的分配給各個(gè)節(jié)點(diǎn),它是一種動(dòng)態(tài)均衡,通過(guò)一些工具實(shí)時(shí)地分析數(shù)據(jù)包,掌握網(wǎng)絡(luò)中的數(shù)據(jù)流量狀況,把請(qǐng)求理分配出去。對(duì)于不同的應(yīng)用環(huán)境(如電子商務(wù)網(wǎng)站,它的計(jì) 算負(fù)荷大;再如網(wǎng)絡(luò)數(shù)據(jù)庫(kù)應(yīng)用,讀寫頻繁,服務(wù)器的存儲(chǔ)子系統(tǒng)系統(tǒng)面臨很大壓力;再如視頻服務(wù)應(yīng)用,數(shù)據(jù)傳輸量大,網(wǎng)絡(luò)接口負(fù)擔(dān)重壓。),使用的均衡策略 (算法)是不同的。 所以均衡策略(算法)也就有了多種多樣的形式,廣義上的負(fù)載均衡既可以設(shè)置專門的網(wǎng)關(guān)、負(fù)載均衡器,也可以通過(guò)一些專用軟件與協(xié)議來(lái)實(shí)現(xiàn)。在OSI七層協(xié)議模型中的第二(數(shù)據(jù)鏈路層)、第三(網(wǎng)絡(luò)層)、第四(傳輸層)、第七層(應(yīng)用層)都有相應(yīng)的負(fù)載均衡策略(算法),在數(shù)據(jù)鏈路層上實(shí)現(xiàn)負(fù)載均衡的原理是根據(jù)數(shù)據(jù)包的目的MAC地址選擇不同的路徑;在網(wǎng)絡(luò)層上可利用基于IP地址的分配方式將數(shù)據(jù)流疏通到多個(gè)節(jié)點(diǎn);而傳輸層和應(yīng)用層的交換(Switch),本身便是一種基于訪問(wèn)流量的控制方式,能夠?qū)崿F(xiàn)負(fù)載均衡。
目前,基于負(fù)載均衡的算法主要有三種:輪循(Round-Robin)、最小連接數(shù)(Least Connections First),和快速響應(yīng)優(yōu)先(Faster Response Precedence)。
①輪循算法,就是將來(lái)自網(wǎng)絡(luò)的請(qǐng)求依次分配給集群中的節(jié)點(diǎn)進(jìn)行處理。
②最小連接數(shù)算法,就是為集群中的每臺(tái)服務(wù)器設(shè)置一個(gè)記數(shù)器,記錄每個(gè)服務(wù)器當(dāng)前的連接數(shù),負(fù)載均衡系統(tǒng)總是選擇當(dāng)前連接數(shù)最少的服務(wù)器分配任務(wù)。 這要比"輪循算法"好很多,因?yàn)樵谟行﹫?chǎng)合中,簡(jiǎn)單的輪循不能判斷哪個(gè)節(jié)點(diǎn)的負(fù)載更低,也許新的工作又被分配給了一個(gè)已經(jīng)很忙的服務(wù)器了。
③快速響應(yīng)優(yōu)先算法,是根據(jù)群集中的節(jié)點(diǎn)的狀態(tài)(CPU、內(nèi)存等主要處理部分)來(lái)分配任務(wù)。 這一點(diǎn)很難做到,事實(shí)上到目前為止,采用這個(gè)算法的負(fù)載均衡系統(tǒng)還很少。尤其對(duì)于硬件負(fù)載均衡設(shè)備來(lái)說(shuō),只能在TCP/IP協(xié)議方面做工作,幾乎不可能深入到服務(wù)器的處理系統(tǒng)中進(jìn)行監(jiān)測(cè)。但是它是未來(lái)發(fā)展的方向。
上面是負(fù)載均衡常用的算法,基于以上負(fù)載均衡算法的使用方式上,又分為如下幾種:
1、DNS輪詢
最早的負(fù)載均衡技術(shù)是通過(guò)DNS來(lái)實(shí)現(xiàn)的,在DNS中為多個(gè)地址配置同一個(gè)名字,因而查詢這個(gè)名字的客戶機(jī)將得到其中一個(gè)地址,從而使得不同的客戶訪問(wèn)不同的服務(wù)器,達(dá)到負(fù)載均衡的目的。
DNS負(fù)載均衡是一種簡(jiǎn)單而有效的方法,但是它不能區(qū)分服務(wù)器的差異,也不能反映服務(wù)器的當(dāng)前運(yùn)行狀態(tài)。當(dāng)使用DNS負(fù)載均衡的時(shí)候,必須盡量保證不同的 客戶計(jì)算機(jī)能均勻獲得不同的地址。由于DNS數(shù)據(jù)具備刷新時(shí)間標(biāo)志,一旦超過(guò)這個(gè)時(shí)間限制,其他DNS服務(wù)器就需要和這個(gè)服務(wù)器交互,以重新獲得地址數(shù) 據(jù),就有可能獲得不同IP地址。因此為了使地址能隨機(jī)分配,就應(yīng)使刷新時(shí)間盡量短,不同地方的DNS服務(wù)器能更新對(duì)應(yīng)的地址,達(dá)到隨機(jī)獲得地址,然而將過(guò) 期時(shí)間設(shè)置得過(guò)短,將使DNS流量大增,而造成額外的網(wǎng)絡(luò)問(wèn)題。DNS負(fù)載均衡的另一個(gè)問(wèn)題是,一旦某個(gè)服務(wù)器出現(xiàn)故障,即使及時(shí)修改了DNS設(shè)置,還是 要等待足夠的時(shí)間(刷新時(shí)間)才能發(fā)揮作用,在此期間,保存了故障服務(wù)器地址的客戶計(jì)算機(jī)將不能正常訪問(wèn)服務(wù)器
2、反向代理服務(wù)器
使用代理服務(wù)器,可以將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部的服務(wù)器,使用這種加速模式顯然可以提升靜態(tài)網(wǎng)頁(yè)的訪問(wèn)速度。然而,也可以考慮這樣一種技術(shù),使用代理服務(wù)器將請(qǐng)求均勻轉(zhuǎn)發(fā)給多臺(tái)服務(wù)器,從而達(dá)到負(fù)載均衡的目的。
這種代理方式與普通的代理方式有所不同,標(biāo)準(zhǔn)代理方式是客戶使用代理訪問(wèn)多個(gè)外部服務(wù)器,而這種代理方式是代理多個(gè)客戶訪問(wèn)內(nèi)部服務(wù)器,因此也被稱為反向代理模式。雖然實(shí)現(xiàn)這個(gè)任務(wù)并不算是特別復(fù)雜,然而由于要求特別高的效率,實(shí)現(xiàn)起來(lái)并不簡(jiǎn)單。
使用反向代理的好處是,可以將負(fù)載均衡和代理服務(wù)器的高速緩存技術(shù)結(jié)合在一起,提供有益的性能。然而它本身也存在一些問(wèn)題,首先就是必須為每一種服務(wù)都專門開(kāi)發(fā)一個(gè)反向代理服務(wù)器,這就不是一個(gè)輕松的任務(wù)。
代理服務(wù)器本身雖然可以達(dá)到很高效率,但是針對(duì)每一次代理,代理服務(wù)器就必須維護(hù)兩個(gè)連接,一個(gè)對(duì)外的連接,一個(gè)對(duì)內(nèi)的連接,因此對(duì)于特別高的連接請(qǐng)求, 代理服務(wù)器的負(fù)載也就非常之大。反向代理方式下能應(yīng)用優(yōu)化的負(fù)載均衡策略,每次訪問(wèn)最空閑的內(nèi)部服務(wù)器來(lái)提供服務(wù)。但是隨著并發(fā)連接數(shù)量的增加,代理服務(wù) 器本身的負(fù)載也變得非常大,最后反向代理服務(wù)器本身會(huì)成為服務(wù)的瓶頸。
3、地址轉(zhuǎn)換網(wǎng)關(guān)
支持負(fù)載均衡的地址轉(zhuǎn)換網(wǎng)關(guān),可以將一個(gè)外部IP地址映射為多個(gè)內(nèi)部IP地址,對(duì)每次TCP連接請(qǐng)求動(dòng)態(tài)使用其中一個(gè)內(nèi)部地址,達(dá)到負(fù)載均衡的目的。很多 硬件廠商將這種技術(shù)集成在他們的交換機(jī)中,作為他們第四層交換的一種功能來(lái)實(shí)現(xiàn),一般采用隨機(jī)選擇、根據(jù)服務(wù)器的連接數(shù)量或者響應(yīng)時(shí)間進(jìn)行選擇的負(fù)載均衡 策略來(lái)分配負(fù)載。由于地址轉(zhuǎn)換相對(duì)來(lái)講比較接近網(wǎng)絡(luò)的低層,因此就有可能將它集成在硬件設(shè)備中,通常這樣的硬件設(shè)備是局域網(wǎng)交換機(jī)。
第二:數(shù)據(jù)庫(kù)主從關(guān)系的映射:
很重要一個(gè)信息就是數(shù)據(jù)庫(kù)的分離,電商的數(shù)據(jù)庫(kù)業(yè)務(wù)是這樣做的,業(yè)務(wù)數(shù)據(jù)的增刪改進(jìn)行的是在主數(shù)據(jù)庫(kù)的操作,全部的查詢都是在從數(shù)據(jù)庫(kù)操作,大家可能就會(huì)有疑問(wèn)了,那么怎么保證數(shù)據(jù)的一致性呢,是因?yàn)閿?shù)據(jù)庫(kù)服務(wù)進(jìn)行映射和配置,當(dāng)主數(shù)據(jù)庫(kù)發(fā)生了數(shù)據(jù)變化會(huì)立刻同步到所有的從數(shù)據(jù)庫(kù)。這樣的做法的好處就是減少數(shù)據(jù)庫(kù)服務(wù)器的壓力。從而大大的提升查詢和性能。真是一種聰明的做法。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-18剛?cè)肼殘?chǎng)或是在職場(chǎng)正面臨崗位替代、技能更新、人機(jī)協(xié)作等焦慮的打工人,想要找到一條破解職場(chǎng)焦慮和升職瓶頸的系統(tǒng)化學(xué)習(xí)提升 ...
2025-07-182025被稱為“AI元年”,而AI,與數(shù)據(jù)密不可分。網(wǎng)易公司創(chuàng)始人丁磊在《AI思維:從數(shù)據(jù)中創(chuàng)造價(jià)值的煉金術(shù) ...
2025-07-18CDA 數(shù)據(jù)分析師:數(shù)據(jù)時(shí)代的價(jià)值挖掘者 在大數(shù)據(jù)席卷全球的今天,數(shù)據(jù)已成為企業(yè)核心競(jìng)爭(zhēng)力的重要組成部分。從海量數(shù)據(jù)中提取有 ...
2025-07-18SPSS 賦值后數(shù)據(jù)不顯示?原因排查與解決指南? 在 SPSS( Statistical Package for the Social Sciences)數(shù)據(jù)分析過(guò)程中,變量 ...
2025-07-18在 DBeaver 中利用 MySQL 實(shí)現(xiàn)表數(shù)據(jù)同步操作指南? ? 在數(shù)據(jù)庫(kù)管理工作中,將一張表的數(shù)據(jù)同步到另一張表是常見(jiàn)需求,這有助于 ...
2025-07-18數(shù)據(jù)分析師的技能圖譜:從數(shù)據(jù)到價(jià)值的橋梁? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,數(shù)據(jù)分析師如同 “數(shù)據(jù)翻譯官”,將冰冷的數(shù)字轉(zhuǎn)化為清晰的 ...
2025-07-17Pandas 寫入指定行數(shù)據(jù):數(shù)據(jù)精細(xì)化管理的核心技能? 在數(shù)據(jù)處理的日常工作中,我們常常需要面對(duì)這樣的場(chǎng)景:在龐大的數(shù)據(jù)集里精 ...
2025-07-17解碼 CDA:數(shù)據(jù)時(shí)代的通行證? 在數(shù)字化浪潮席卷全球的今天,當(dāng)企業(yè)決策者盯著屏幕上跳動(dòng)的數(shù)據(jù)曲線尋找增長(zhǎng)密碼,當(dāng)科研人員在 ...
2025-07-17CDA 精益業(yè)務(wù)數(shù)據(jù)分析:數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù)增長(zhǎng)的實(shí)戰(zhàn)方法論 在企業(yè)數(shù)字化轉(zhuǎn)型的浪潮中,“數(shù)據(jù)分析” 已從 “加分項(xiàng)” 成為 “必修課 ...
2025-07-16MySQL 中 ADD KEY 與 ADD INDEX 詳解:用法、差異與優(yōu)化實(shí)踐 在 MySQL 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)中,索引是提升查詢性能的核心手段。無(wú)論 ...
2025-07-16解析 MySQL Update 語(yǔ)句中 “query end” 狀態(tài):含義、成因與優(yōu)化指南? 在 MySQL 數(shù)據(jù)庫(kù)的日常運(yùn)維與開(kāi)發(fā)中,開(kāi)發(fā)者和 DBA 常會(huì) ...
2025-07-16如何考取數(shù)據(jù)分析師證書:以 CDA 為例? ? 在數(shù)字化浪潮席卷各行各業(yè)的當(dāng)下,數(shù)據(jù)分析師已然成為企業(yè)挖掘數(shù)據(jù)價(jià)值、驅(qū)動(dòng)決策的 ...
2025-07-15CDA 精益業(yè)務(wù)數(shù)據(jù)分析:驅(qū)動(dòng)企業(yè)高效決策的核心引擎? 在數(shù)字經(jīng)濟(jì)時(shí)代,企業(yè)面臨著前所未有的數(shù)據(jù)洪流,如何從海量數(shù)據(jù)中提取有 ...
2025-07-15MySQL 無(wú)外鍵關(guān)聯(lián)表的 JOIN 實(shí)戰(zhàn):數(shù)據(jù)整合的靈活之道? 在 MySQL 數(shù)據(jù)庫(kù)的日常操作中,我們經(jīng)常會(huì)遇到需要整合多張表數(shù)據(jù)的場(chǎng)景 ...
2025-07-15Python Pandas:數(shù)據(jù)科學(xué)的瑞士軍刀? ? 在數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,面對(duì)海量、復(fù)雜的數(shù)據(jù),如何高效地進(jìn)行處理、分析和挖掘成為關(guān)鍵。 ...
2025-07-15用 SQL 生成逆向回滾 SQL:數(shù)據(jù)操作的 “后悔藥” 指南? 在數(shù)據(jù)庫(kù)操作中,誤刪數(shù)據(jù)、錯(cuò)改字段或誤執(zhí)行批量更新等問(wèn)題時(shí)有發(fā)生。 ...
2025-07-14t檢驗(yàn)與Wilcoxon檢驗(yàn)的選擇:何時(shí)用t.test,何時(shí)用wilcox.test? t 檢驗(yàn)與 Wilcoxon 檢驗(yàn)的選擇:何時(shí)用 t.test,何時(shí)用 wilcox. ...
2025-07-14AI 浪潮下的生存與進(jìn)階: CDA數(shù)據(jù)分析師—開(kāi)啟新時(shí)代職業(yè)生涯的鑰匙(深度研究報(bào)告、發(fā)展指導(dǎo)白皮書) 發(fā)布機(jī)構(gòu):CDA數(shù)據(jù)科 ...
2025-07-13LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11