




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
大型互聯(lián)網(wǎng)相關(guān)技術(shù)
目錄網(wǎng)站架構(gòu)發(fā)展歷史負(fù)載均衡CDN分布式緩存分布式數(shù)據(jù)庫(kù)服務(wù)化消息隊(duì)列一、最開始的網(wǎng)站架構(gòu)最初的架構(gòu),應(yīng)用程序、數(shù)據(jù)庫(kù)、文件都部署在一臺(tái)服務(wù)器上二、應(yīng)用、數(shù)據(jù)、文件分離隨著業(yè)務(wù)的擴(kuò)展,一臺(tái)服務(wù)器已經(jīng)不能滿足性能需求,故將應(yīng)用程序、數(shù)據(jù)庫(kù)、文件各自部署在獨(dú)立的服務(wù)器上,并且根據(jù)服務(wù)器的用途配置不同的硬件,達(dá)到最佳的性能效果。三、利用緩存改善網(wǎng)站性能使用緩存主要源于熱點(diǎn)數(shù)據(jù)的存在,大部分網(wǎng)站訪問(wèn)都遵循28原則(即80%的訪問(wèn)請(qǐng)求,最終落在20%的數(shù)據(jù)上),所以我們可以對(duì)熱點(diǎn)數(shù)據(jù)進(jìn)行緩存,減少這些數(shù)據(jù)的訪問(wèn)路徑,提高用戶體驗(yàn)。四、使用集群改善應(yīng)用服務(wù)器性能提高系統(tǒng)的吞吐量提高系統(tǒng)的高可用五、數(shù)據(jù)庫(kù)讀寫分離和分庫(kù)分表隨著用戶量的增加,數(shù)據(jù)庫(kù)成為最大的瓶頸,改善數(shù)據(jù)庫(kù)性能常用的手段是進(jìn)行讀寫分離以及分庫(kù)分表,讀寫分離顧名思義就是將數(shù)據(jù)庫(kù)分為讀庫(kù)和寫庫(kù),通過(guò)主備功能實(shí)現(xiàn)數(shù)據(jù)同步。分庫(kù)分表則分為水平切分和垂直切分,水平切分則是對(duì)一個(gè)數(shù)據(jù)庫(kù)特大的表進(jìn)行拆分,例如用戶表。垂直切分則是根據(jù)業(yè)務(wù)的不同來(lái)切分,如用戶業(yè)務(wù)、商品業(yè)務(wù)相關(guān)的表放在不同的數(shù)據(jù)庫(kù)中。六、使用CDN和反向代理提高網(wǎng)站性能七、使用分布式文件系統(tǒng)八、使用NoSql和搜索引擎九、搭建分布式服務(wù)(服務(wù)化)負(fù)載均衡應(yīng)用集群:將同一應(yīng)用部署到多臺(tái)機(jī)器上,組成處理集群,接收負(fù)載均衡設(shè)備分發(fā)的請(qǐng)求,進(jìn)行處理,并返回相應(yīng)數(shù)據(jù)。提高系統(tǒng)的高可用和吞吐量。負(fù)載均衡設(shè)備:將用戶訪問(wèn)的請(qǐng)求,根據(jù)負(fù)載均衡算法,分發(fā)到集群中的一臺(tái)處理服務(wù)器。(一種把網(wǎng)絡(luò)請(qǐng)求分散到一個(gè)服務(wù)器集群中的可用服務(wù)器上去的設(shè)備)負(fù)載均衡實(shí)現(xiàn)技術(shù)DNS輪詢http重定向LVSDRIP隧道NAT七層(nginx)硬件DNS負(fù)載均衡缺點(diǎn)DNS并不能保證返回的地址均勻的落在每臺(tái)服務(wù)器上。DNS服務(wù)器并不一定緩存了全部的服務(wù)器地址如果一臺(tái)web服務(wù)器宕機(jī),那DNS返回這個(gè)地址的請(qǐng)求全部失敗。
每次變更服務(wù)器需要變更DNS,非常麻煩。DNS生效還需要一段時(shí)間。
DNS并不一定對(duì)服務(wù)器地址進(jìn)行輪詢返回。為了安全,web服務(wù)器部署在內(nèi)網(wǎng)內(nèi),外部不能直接訪問(wèn)。大型網(wǎng)站總是部分使用DNS解析,作為第一級(jí)負(fù)載均衡。將DNS作為第一級(jí)負(fù)載均衡,A記錄對(duì)應(yīng)著內(nèi)部負(fù)載均衡的IP地址,通過(guò)內(nèi)部負(fù)載均衡將請(qǐng)求分發(fā)到真實(shí)的Web服務(wù)器上。DNS能根據(jù)地域返回就近的服務(wù)器地址。http重定向缺點(diǎn):HTTP重定向服務(wù)器不能存在單點(diǎn),最少需要兩臺(tái)才能高可用。那么HTTP重定向服務(wù)器也需要負(fù)載均衡設(shè)備。效率很低下當(dāng)變更服務(wù)器集群的時(shí)候,需要通知到HTTP重定向服務(wù)器。不要使用這種方式進(jìn)行負(fù)載均衡。LVS(NAT)負(fù)載均衡策略輪詢將所有請(qǐng)求,依次分發(fā)到每臺(tái)服務(wù)器上,適合服務(wù)器硬件同相同的場(chǎng)景。優(yōu)點(diǎn):服務(wù)器請(qǐng)求數(shù)目相同。缺點(diǎn):服務(wù)器壓力不一樣,不適合服務(wù)器配置不同的情況。隨機(jī)請(qǐng)求隨機(jī)分配到各個(gè)服務(wù)器。
優(yōu)點(diǎn):使用簡(jiǎn)單。缺點(diǎn):不適合機(jī)器配置不同的場(chǎng)景。最少鏈接將請(qǐng)求分配到連接數(shù)最少的服務(wù)器(目前處理請(qǐng)求最少的服務(wù)器)。優(yōu)點(diǎn):根據(jù)服務(wù)器當(dāng)前的請(qǐng)求處理情況,動(dòng)態(tài)分配。缺點(diǎn):算法實(shí)現(xiàn)相對(duì)復(fù)雜,需要監(jiān)控服務(wù)器請(qǐng)求連接數(shù)。負(fù)載均衡策略Hash(源地址散列)根據(jù)IP地址進(jìn)行Hash計(jì)算,得到IP地址。優(yōu)點(diǎn):將來(lái)自同一IP地址的請(qǐng)求,同一會(huì)話期內(nèi),轉(zhuǎn)發(fā)到相同的服務(wù)器;實(shí)現(xiàn)會(huì)話粘滯。缺點(diǎn):目標(biāo)服務(wù)器宕機(jī)后,會(huì)話會(huì)丟失。加權(quán)在輪詢,隨機(jī),最少鏈接,Hash’等算法的基礎(chǔ)上,通過(guò)加權(quán)的方式,進(jìn)行負(fù)載服務(wù)器分配。優(yōu)點(diǎn):根據(jù)權(quán)重,調(diào)節(jié)轉(zhuǎn)發(fā)服務(wù)器的請(qǐng)求數(shù)目。缺點(diǎn):使用相對(duì)復(fù)雜。LVS(DR)LVS(TUN)硬件F5支持4層和7層負(fù)載均衡以及多種優(yōu)化技術(shù)價(jià)格昂貴NginxNginx(“enginex”)是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器。Nginx使用更少的資源,支持更多的并發(fā)連接,體現(xiàn)更高的效率,能夠支持高達(dá)50,000個(gè)并發(fā)連接數(shù)的響應(yīng)。Nginx使用epollandkqueue作為開發(fā)模型。我們?cè)趺从胣ginx?nginx處理靜態(tài)資源,然后將動(dòng)態(tài)資源交給tomcat進(jìn)行處理。nginx作為方向代理服務(wù)器,nginx進(jìn)行七層負(fù)載均衡。網(wǎng)絡(luò)延遲帶來(lái)的挑戰(zhàn)假設(shè)別的國(guó)家連接中國(guó)的網(wǎng)絡(luò)很慢,外國(guó)人訪問(wèn)含有大量圖片的天貓網(wǎng)站,此時(shí)網(wǎng)頁(yè)可能下載不到圖片或者下載的速度很慢,怎么辦?解決方案什么是CDN內(nèi)容分發(fā)網(wǎng)絡(luò)(CloudDeliveryNetwork,簡(jiǎn)稱CDN)將源站內(nèi)容分發(fā)至全國(guó)所有的節(jié)點(diǎn),縮短用戶查看對(duì)象的延遲,提高用戶訪問(wèn)網(wǎng)站的響應(yīng)速度與網(wǎng)站的可用性,解決網(wǎng)絡(luò)帶寬小、用戶訪問(wèn)量大、網(wǎng)點(diǎn)分布不均等問(wèn)題CDN原理-DNS解析過(guò)程CDN原理-DNS解析分布式緩存分布式緩存Server=key%3Key=1server=1Key=2server=2Key=3server=0Key=4server=1Key=5server=2Redis-0機(jī)器宕機(jī)Server=key%2Key=1server=1Key=2server=0(失效)Key=3server=1(失效)Key=4server=0(失效)Key=5server=1(失效)增加redis-3機(jī)器Server=key%4Key=1server=1Key=2server=2(失效)Key=3server=3(失效)Key=4server=0(失效)Key=5server=1(失效)分布式緩存-HASH一致性算法平衡性(Balance):
平衡性是指哈希的結(jié)果能夠盡可能分布到所有的緩沖中去,這樣可以使得所有的緩沖空間都得到利用。單調(diào)性(Monotonicity):
單調(diào)性是指如果已經(jīng)有一些內(nèi)容通過(guò)哈希分派到了相應(yīng)的緩沖中,又有新的緩沖加入到系統(tǒng)中。
分散性(Spread):
在最終的結(jié)果是相同的內(nèi)容被不同的終端映射到不同的緩沖區(qū)中。這種情況顯然是應(yīng)該避免的,因?yàn)樗鼘?dǎo)致相同內(nèi)容被存儲(chǔ)到不同緩沖中去,降低了系統(tǒng)存儲(chǔ)的效率。分散性的定義就是上述情況發(fā)生的嚴(yán)重程度。好的哈希算法應(yīng)能夠盡量避免不一致的情況發(fā)生,也就是盡量降低分散性。
負(fù)載(Load):
負(fù)載問(wèn)題實(shí)際上是從另一個(gè)角度看待分散性問(wèn)題。既然不同的終端可能將相同的內(nèi)容映射到不同的緩沖區(qū)中,
那么對(duì)于一個(gè)特定的緩沖區(qū)而言,也可能被不同的用戶映射為不同的內(nèi)容。與分散性一樣,這種情況也是應(yīng)當(dāng)避免的,因此好的哈希算法應(yīng)能夠盡量降低緩沖的負(fù)荷。HASH一致性算法數(shù)據(jù)庫(kù)的挑戰(zhàn)MYSQL在數(shù)據(jù)量達(dá)到千萬(wàn)級(jí)別數(shù)據(jù)的時(shí)候就會(huì)變慢,怎么辦?數(shù)據(jù)庫(kù)QPS,TPS較大,CPU跑滿怎么辦?解決辦法1-主備庫(kù)解決辦法2-將一個(gè)庫(kù)的表移到其他庫(kù)解決辦法3-分布式數(shù)據(jù)庫(kù)分布式數(shù)據(jù)庫(kù)使用要點(diǎn)insert一定要有分庫(kù)分表字段select一定要縮小表的查找范圍盡量使得數(shù)據(jù)均等的分散在各個(gè)數(shù)據(jù)的各個(gè)表上為什么需要服務(wù)化為什么需要服務(wù)化SOA-(Service-OrientedArchitecture)表達(dá)了一種軟件架構(gòu)概念,它定義為使用服務(wù)來(lái)滿足軟件用戶的需求。在SOA環(huán)境中,系統(tǒng)上的節(jié)點(diǎn)以獨(dú)立服務(wù)的形式將自己的資源開放給網(wǎng)絡(luò)上其他參與者,其他參與者按一種標(biāo)準(zhǔn)的方式使用資源。與傳統(tǒng)點(diǎn)對(duì)點(diǎn)架構(gòu)不同,各種SOA都由松耦合、高度可互操作的應(yīng)用服務(wù)構(gòu)成。服務(wù)化webServiceRestFulEDASWebService的基本層次結(jié)構(gòu)傳輸協(xié)議:
SMTP/HTTP等統(tǒng)一數(shù)據(jù)格式:
XML服務(wù)操作協(xié)議: SOAP服務(wù)描述協(xié)議:
WSDLSimple,Open,BroadIndustrySupport簡(jiǎn)單、開放、工業(yè)界廣泛支持服務(wù)發(fā)布協(xié)議:
UDDIUDDI:UniversalDescriptionDiscoveryandIntegrationWSDL:WebServiceDescriptionLanguageSOAP:SimpleObjectAccessProtocol發(fā)布查詢WebService提供者WebService使用者UDDI綁定InternetSOAPSOAPSOAPWebService是一種跨編程語(yǔ)言和跨操作系統(tǒng)平臺(tái)的遠(yuǎn)程調(diào)用技術(shù)WSDL描述web服務(wù)的三個(gè)基本屬性服務(wù)做些什么?服務(wù)所提供的操作(方法)。如何訪問(wèn)服務(wù)?數(shù)據(jù)格式以及訪問(wèn)服務(wù)操作的必要協(xié)議。服務(wù)位于何處?由特定協(xié)議決定的網(wǎng)絡(luò)地址,如URL。Wsdl例子SOAP是什么?SOAP是一種輕量級(jí)協(xié)議,用于在分散型、分布式環(huán)境中交換結(jié)構(gòu)化信息。SOAP利用XML技術(shù)定義一種可擴(kuò)展的消息處理框架,它提供了一種可通過(guò)多種底層協(xié)議進(jìn)行交換的消息結(jié)構(gòu)。這種框架的設(shè)計(jì)思想是要獨(dú)立于任何一種特定的編程模型和其他特定實(shí)現(xiàn)的語(yǔ)義。SOAP的概念最初來(lái)自于MicrosoftandUserlandsoftware,它已經(jīng)演化了好幾代;當(dāng)前最新的規(guī)范是SOAP2.0。由W3C組織制定。SOAP消息結(jié)構(gòu)SOAP請(qǐng)求<?xml
version='1.0'
?>
<soap:Envelope
xmlns:soap="/soap/envelope/">
<soap:Header>
...
</soap:Header>
<soap:Body>
<getCustomerAddress
xmlns="/xsd">
<customerID>12345678</customerID>
</getCustomerAddress
>
</soap:Body>
</soap:Envelope>
SOAP請(qǐng)求在HTTP上的傳輸POST/DEMOWebServices2.8/Service.asmxHTTP/1.1Host:Content-Type:application/soap+xml;charset=utf-8Content-Length:length<?xml
version='1.0'
?>
<soap:Envelope
xmlns:soap="/soap/envelope/">
<soap:Header>
...
</soap:Header>
<soap:Body>
<getCustomerAddress
xmlns="/xsd">
<customerID>12345678</customerID>
</getCustomerAddress
>
</soap:Body>
</soap:Envelope>
SOAP響應(yīng)在HTTP上的傳輸HTTP/1.1200OKContent-Type:application/soap+xml;charset=utf-8Content-Length:length<?xml
version='1.0'
?>
<soap:Envelope
xmlns:soap="/soap/envelope/">
<soap:Header>
...
</soap:Header>
<soap:Body>
<getCustomerAddressResponse
xmlns="/xsd">
<address>
<street>Gaussstr.
29</street>
<city>Braunschweig</city>
<zipCode>D-38106</zipCode>
</address>
</getCustomerAddressResponse>
</soap:Body>
</soap:Envelope>
SOAP響應(yīng)<?xml
version='1.0'
?>
<soap:Envelope
xmlns:soap="/soap/envelope/">
<soap:Header>
...
</soap:Header>
<soap:Body>
<getCustomerAddressResponse
xmlns="/xsd">
<address>
<street>Gaussstr.
29</street>
<city>Braunschweig</city>
<zipCode>D-38106</zipCode>
</address>
</getCustomerAddressResponse>
</soap:Body>
</soap:Envelope>
相關(guān)框架Axis2方式
支持多種語(yǔ)言,性能較低Xfire
和spring整合很方便ApcheCXF方式
是Xfire的升級(jí)版JDK開發(fā)webservice方式RESTFULRESTREST這個(gè)詞,是RoyThomasFielding在他2000年的博士論文中提出的。
它結(jié)構(gòu)清晰、符合標(biāo)準(zhǔn)、易于理解、擴(kuò)展方便,所以正得到越來(lái)越多網(wǎng)站的采用。資源(Resources)REST的名稱"表現(xiàn)層狀態(tài)轉(zhuǎn)化"中,省略了主語(yǔ)。"表現(xiàn)層"其實(shí)指的是"資源"(Resources)的"表現(xiàn)層"。所謂"資源",就是網(wǎng)絡(luò)上的一個(gè)實(shí)體,或者說(shuō)是網(wǎng)絡(luò)上的一個(gè)具體信息。它可以是一段文本、一張圖片、一首歌曲、一種服務(wù),總之就是一個(gè)具體的實(shí)在。你可以用一個(gè)URI(統(tǒng)一資源定位符)指向它,每種資源對(duì)應(yīng)一個(gè)特定的URI。要獲取這個(gè)資源,訪問(wèn)它的URI就可以,因此URI就成了每一個(gè)資源的地址或獨(dú)一無(wú)二的識(shí)別符。表現(xiàn)層(Representation)“資源的表現(xiàn)形式(XML/JSON/HTML/二進(jìn)制等)狀態(tài)轉(zhuǎn)化(StateTransfer)HTTP協(xié)議里面,四個(gè)表示操作方式的動(dòng)詞:GET、POST、PUT、DELETE。它們分別對(duì)應(yīng)四種基本操作:GET用來(lái)獲取資源,POST用來(lái)新建資源(也可以用于更新資源),PUT用來(lái)更新資源,DELETE用來(lái)刪除資源。EDAS企業(yè)級(jí)分布式應(yīng)用服務(wù)(EDAS,EnterpriseDistributedApplicationService)是企業(yè)級(jí)互聯(lián)網(wǎng)架構(gòu)解決方案的核心產(chǎn)品,充分利用阿里云現(xiàn)有資源管理和服務(wù)體系,引入中間件成熟的整套分布式計(jì)算
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息系統(tǒng)項(xiàng)目管理師考試重要細(xì)節(jié)總結(jié)試題及答案
- 網(wǎng)絡(luò)工程師考試真題試題及答案
- 公共政策風(fēng)險(xiǎn)評(píng)估試題及答案
- 機(jī)電工程實(shí)踐經(jīng)驗(yàn)分享試題及答案2025
- 透視2025機(jī)電工程事業(yè)發(fā)展試題及答案
- 完善企業(yè)收入分配制度的背景意義及必要性
- 當(dāng)代西方政治制度的特點(diǎn)與發(fā)展試題及答案
- 西方國(guó)家在國(guó)際組織中的角色試題及答案
- 網(wǎng)絡(luò)風(fēng)險(xiǎn)管理試題及答案要點(diǎn)
- 信息系統(tǒng)項(xiàng)目管理師自我反思試題及答案
- GB/T 3608-2008高處作業(yè)分級(jí)
- GB/T 31821-2015電梯主要部件報(bào)廢技術(shù)條件
- 無(wú)人機(jī)航飛計(jì)劃表
- GB 36894-2018危險(xiǎn)化學(xué)品生產(chǎn)裝置和儲(chǔ)存設(shè)施風(fēng)險(xiǎn)基準(zhǔn)
- 自動(dòng)送料機(jī)控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 管理處干部職工廉潔從業(yè)行為規(guī)范
- 《管理會(huì)計(jì)在企業(yè)應(yīng)用中問(wèn)題及對(duì)策研究-以美的公司為例(論文)6800字》
- GB-T 1040.3-2006 塑料 拉伸性能的測(cè)定 第3部分:薄塑和薄片的試驗(yàn)條件
- 《數(shù)學(xué)廣角找次品》公開課一等獎(jiǎng)省優(yōu)質(zhì)課大賽獲獎(jiǎng)?wù)n件
- 企業(yè)負(fù)責(zé)人安全管理人員安全能力提升培訓(xùn)之一課件
- 藍(lán)色高效會(huì)議管理技巧PPT模板
評(píng)論
0/150
提交評(píng)論