版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
大型互聯(lián)網(wǎng)相關(guān)技術(shù)
目錄網(wǎng)站架構(gòu)發(fā)展歷史負(fù)載均衡CDN分布式緩存分布式數(shù)據(jù)庫服務(wù)化消息隊列一、最開始的網(wǎng)站架構(gòu)最初的架構(gòu),應(yīng)用程序、數(shù)據(jù)庫、文件都部署在一臺服務(wù)器上二、應(yīng)用、數(shù)據(jù)、文件分離隨著業(yè)務(wù)的擴(kuò)展,一臺服務(wù)器已經(jīng)不能滿足性能需求,故將應(yīng)用程序、數(shù)據(jù)庫、文件各自部署在獨立的服務(wù)器上,并且根據(jù)服務(wù)器的用途配置不同的硬件,達(dá)到最佳的性能效果。三、利用緩存改善網(wǎng)站性能使用緩存主要源于熱點數(shù)據(jù)的存在,大部分網(wǎng)站訪問都遵循28原則(即80%的訪問請求,最終落在20%的數(shù)據(jù)上),所以我們可以對熱點數(shù)據(jù)進(jìn)行緩存,減少這些數(shù)據(jù)的訪問路徑,提高用戶體驗。四、使用集群改善應(yīng)用服務(wù)器性能提高系統(tǒng)的吞吐量提高系統(tǒng)的高可用五、數(shù)據(jù)庫讀寫分離和分庫分表隨著用戶量的增加,數(shù)據(jù)庫成為最大的瓶頸,改善數(shù)據(jù)庫性能常用的手段是進(jìn)行讀寫分離以及分庫分表,讀寫分離顧名思義就是將數(shù)據(jù)庫分為讀庫和寫庫,通過主備功能實現(xiàn)數(shù)據(jù)同步。分庫分表則分為水平切分和垂直切分,水平切分則是對一個數(shù)據(jù)庫特大的表進(jìn)行拆分,例如用戶表。垂直切分則是根據(jù)業(yè)務(wù)的不同來切分,如用戶業(yè)務(wù)、商品業(yè)務(wù)相關(guān)的表放在不同的數(shù)據(jù)庫中。六、使用CDN和反向代理提高網(wǎng)站性能七、使用分布式文件系統(tǒng)八、使用NoSql和搜索引擎九、搭建分布式服務(wù)(服務(wù)化)負(fù)載均衡應(yīng)用集群:將同一應(yīng)用部署到多臺機(jī)器上,組成處理集群,接收負(fù)載均衡設(shè)備分發(fā)的請求,進(jìn)行處理,并返回相應(yīng)數(shù)據(jù)。提高系統(tǒng)的高可用和吞吐量。負(fù)載均衡設(shè)備:將用戶訪問的請求,根據(jù)負(fù)載均衡算法,分發(fā)到集群中的一臺處理服務(wù)器。(一種把網(wǎng)絡(luò)請求分散到一個服務(wù)器集群中的可用服務(wù)器上去的設(shè)備)負(fù)載均衡實現(xiàn)技術(shù)DNS輪詢http重定向LVSDRIP隧道NAT七層(nginx)硬件DNS負(fù)載均衡缺點DNS并不能保證返回的地址均勻的落在每臺服務(wù)器上。DNS服務(wù)器并不一定緩存了全部的服務(wù)器地址如果一臺web服務(wù)器宕機(jī),那DNS返回這個地址的請求全部失敗。
每次變更服務(wù)器需要變更DNS,非常麻煩。DNS生效還需要一段時間。
DNS并不一定對服務(wù)器地址進(jìn)行輪詢返回。為了安全,web服務(wù)器部署在內(nèi)網(wǎng)內(nèi),外部不能直接訪問。大型網(wǎng)站總是部分使用DNS解析,作為第一級負(fù)載均衡。將DNS作為第一級負(fù)載均衡,A記錄對應(yīng)著內(nèi)部負(fù)載均衡的IP地址,通過內(nèi)部負(fù)載均衡將請求分發(fā)到真實的Web服務(wù)器上。DNS能根據(jù)地域返回就近的服務(wù)器地址。http重定向缺點:HTTP重定向服務(wù)器不能存在單點,最少需要兩臺才能高可用。那么HTTP重定向服務(wù)器也需要負(fù)載均衡設(shè)備。效率很低下當(dāng)變更服務(wù)器集群的時候,需要通知到HTTP重定向服務(wù)器。不要使用這種方式進(jìn)行負(fù)載均衡。LVS(NAT)負(fù)載均衡策略輪詢將所有請求,依次分發(fā)到每臺服務(wù)器上,適合服務(wù)器硬件同相同的場景。優(yōu)點:服務(wù)器請求數(shù)目相同。缺點:服務(wù)器壓力不一樣,不適合服務(wù)器配置不同的情況。隨機(jī)請求隨機(jī)分配到各個服務(wù)器。
優(yōu)點:使用簡單。缺點:不適合機(jī)器配置不同的場景。最少鏈接將請求分配到連接數(shù)最少的服務(wù)器(目前處理請求最少的服務(wù)器)。優(yōu)點:根據(jù)服務(wù)器當(dāng)前的請求處理情況,動態(tài)分配。缺點:算法實現(xiàn)相對復(fù)雜,需要監(jiān)控服務(wù)器請求連接數(shù)。負(fù)載均衡策略Hash(源地址散列)根據(jù)IP地址進(jìn)行Hash計算,得到IP地址。優(yōu)點:將來自同一IP地址的請求,同一會話期內(nèi),轉(zhuǎn)發(fā)到相同的服務(wù)器;實現(xiàn)會話粘滯。缺點:目標(biāo)服務(wù)器宕機(jī)后,會話會丟失。加權(quán)在輪詢,隨機(jī),最少鏈接,Hash’等算法的基礎(chǔ)上,通過加權(quán)的方式,進(jìn)行負(fù)載服務(wù)器分配。優(yōu)點:根據(jù)權(quán)重,調(diào)節(jié)轉(zhuǎn)發(fā)服務(wù)器的請求數(shù)目。缺點:使用相對復(fù)雜。LVS(DR)LVS(TUN)硬件F5支持4層和7層負(fù)載均衡以及多種優(yōu)化技術(shù)價格昂貴NginxNginx(“enginex”)是一個高性能的HTTP和反向代理服務(wù)器,也是一個IMAP/POP3/SMTP服務(wù)器。Nginx使用更少的資源,支持更多的并發(fā)連接,體現(xiàn)更高的效率,能夠支持高達(dá)50,000個并發(fā)連接數(shù)的響應(yīng)。Nginx使用epollandkqueue作為開發(fā)模型。我們怎么用nginx?nginx處理靜態(tài)資源,然后將動態(tài)資源交給tomcat進(jìn)行處理。nginx作為方向代理服務(wù)器,nginx進(jìn)行七層負(fù)載均衡。網(wǎng)絡(luò)延遲帶來的挑戰(zhàn)假設(shè)別的國家連接中國的網(wǎng)絡(luò)很慢,外國人訪問含有大量圖片的天貓網(wǎng)站,此時網(wǎng)頁可能下載不到圖片或者下載的速度很慢,怎么辦?解決方案什么是CDN內(nèi)容分發(fā)網(wǎng)絡(luò)(CloudDeliveryNetwork,簡稱CDN)將源站內(nèi)容分發(fā)至全國所有的節(jié)點,縮短用戶查看對象的延遲,提高用戶訪問網(wǎng)站的響應(yīng)速度與網(wǎng)站的可用性,解決網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點分布不均等問題CDN原理-DNS解析過程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)容通過哈希分派到了相應(yīng)的緩沖中,又有新的緩沖加入到系統(tǒng)中。
分散性(Spread):
在最終的結(jié)果是相同的內(nèi)容被不同的終端映射到不同的緩沖區(qū)中。這種情況顯然是應(yīng)該避免的,因為它導(dǎo)致相同內(nèi)容被存儲到不同緩沖中去,降低了系統(tǒng)存儲的效率。分散性的定義就是上述情況發(fā)生的嚴(yán)重程度。好的哈希算法應(yīng)能夠盡量避免不一致的情況發(fā)生,也就是盡量降低分散性。
負(fù)載(Load):
負(fù)載問題實際上是從另一個角度看待分散性問題。既然不同的終端可能將相同的內(nèi)容映射到不同的緩沖區(qū)中,
那么對于一個特定的緩沖區(qū)而言,也可能被不同的用戶映射為不同的內(nèi)容。與分散性一樣,這種情況也是應(yīng)當(dāng)避免的,因此好的哈希算法應(yīng)能夠盡量降低緩沖的負(fù)荷。HASH一致性算法數(shù)據(jù)庫的挑戰(zhàn)MYSQL在數(shù)據(jù)量達(dá)到千萬級別數(shù)據(jù)的時候就會變慢,怎么辦?數(shù)據(jù)庫QPS,TPS較大,CPU跑滿怎么辦?解決辦法1-主備庫解決辦法2-將一個庫的表移到其他庫解決辦法3-分布式數(shù)據(jù)庫分布式數(shù)據(jù)庫使用要點insert一定要有分庫分表字段select一定要縮小表的查找范圍盡量使得數(shù)據(jù)均等的分散在各個數(shù)據(jù)的各個表上為什么需要服務(wù)化為什么需要服務(wù)化SOA-(Service-OrientedArchitecture)表達(dá)了一種軟件架構(gòu)概念,它定義為使用服務(wù)來滿足軟件用戶的需求。在SOA環(huán)境中,系統(tǒng)上的節(jié)點以獨立服務(wù)的形式將自己的資源開放給網(wǎng)絡(luò)上其他參與者,其他參與者按一種標(biāo)準(zhǔn)的方式使用資源。與傳統(tǒng)點對點架構(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簡單、開放、工業(yè)界廣泛支持服務(wù)發(fā)布協(xié)議:
UDDIUDDI:UniversalDescriptionDiscoveryandIntegrationWSDL:WebServiceDescriptionLanguageSOAP:SimpleObjectAccessProtocol發(fā)布查詢WebService提供者WebService使用者UDDI綁定InternetSOAPSOAPSOAPWebService是一種跨編程語言和跨操作系統(tǒng)平臺的遠(yuǎn)程調(diào)用技術(shù)WSDL描述web服務(wù)的三個基本屬性服務(wù)做些什么?服務(wù)所提供的操作(方法)。如何訪問服務(wù)?數(shù)據(jù)格式以及訪問服務(wù)操作的必要協(xié)議。服務(wù)位于何處?由特定協(xié)議決定的網(wǎng)絡(luò)地址,如URL。Wsdl例子SOAP是什么?SOAP是一種輕量級協(xié)議,用于在分散型、分布式環(huán)境中交換結(jié)構(gòu)化信息。SOAP利用XML技術(shù)定義一種可擴(kuò)展的消息處理框架,它提供了一種可通過多種底層協(xié)議進(jìn)行交換的消息結(jié)構(gòu)。這種框架的設(shè)計思想是要獨立于任何一種特定的編程模型和其他特定實現(xiàn)的語義。SOAP的概念最初來自于MicrosoftandUserlandsoftware,它已經(jīng)演化了好幾代;當(dāng)前最新的規(guī)范是SOAP2.0。由W3C組織制定。SOAP消息結(jié)構(gòu)SOAP請求<?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請求在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方式
支持多種語言,性能較低Xfire
和spring整合很方便ApcheCXF方式
是Xfire的升級版JDK開發(fā)webservice方式RESTFULRESTREST這個詞,是RoyThomasFielding在他2000年的博士論文中提出的。
它結(jié)構(gòu)清晰、符合標(biāo)準(zhǔn)、易于理解、擴(kuò)展方便,所以正得到越來越多網(wǎng)站的采用。資源(Resources)REST的名稱"表現(xiàn)層狀態(tài)轉(zhuǎn)化"中,省略了主語。"表現(xiàn)層"其實指的是"資源"(Resources)的"表現(xiàn)層"。所謂"資源",就是網(wǎng)絡(luò)上的一個實體,或者說是網(wǎng)絡(luò)上的一個具體信息。它可以是一段文本、一張圖片、一首歌曲、一種服務(wù),總之就是一個具體的實在。你可以用一個URI(統(tǒng)一資源定位符)指向它,每種資源對應(yīng)一個特定的URI。要獲取這個資源,訪問它的URI就可以,因此URI就成了每一個資源的地址或獨一無二的識別符。表現(xiàn)層(Representation)“資源的表現(xiàn)形式(XML/JSON/HTML/二進(jìn)制等)狀態(tài)轉(zhuǎn)化(StateTransfer)HTTP協(xié)議里面,四個表示操作方式的動詞:GET、POST、PUT、DELETE。它們分別對應(yīng)四種基本操作:GET用來獲取資源,POST用來新建資源(也可以用于更新資源),PUT用來更新資源,DELETE用來刪除資源。EDAS企業(yè)級分布式應(yīng)用服務(wù)(EDAS,EnterpriseDistributedApplicationService)是企業(yè)級互聯(lián)網(wǎng)架構(gòu)解決方案的核心產(chǎn)品,充分利用阿里云現(xiàn)有資源管理和服務(wù)體系,引入中間件成熟的整套分布式計算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應(yīng)鏈需求管理辦法
- 會議室墻紙裝飾合同
- 冷鏈物流運(yùn)輸卡車租賃協(xié)議
- 2025年鍺單晶、鍺片及金屬鍺合作協(xié)議書
- 中醫(yī)院水電管理使用條例
- 汽車站屋面天溝防水施工協(xié)議
- 2025的房屋買賣合同
- 銀行和解質(zhì)押協(xié)議
- 射陽農(nóng)村合作協(xié)議
- 航天工程合同管理與招投標(biāo)技巧
- 中班聽課記錄15篇
- GB/T 8750-2022半導(dǎo)體封裝用金基鍵合絲、帶
- 體育科學(xué)研究方法學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 2023天津市和平區(qū)七年級上學(xué)期語文期末試卷及答案
- 校園藝術(shù)節(jié)比賽評分表
- 挖機(jī)租賃協(xié)議(通用6篇)
- 院內(nèi)按病種分值付費(fèi)(DIP)專題培訓(xùn)
- 有機(jī)磷中毒專家共識
- 2023-2024學(xué)年遼寧省調(diào)兵山市小學(xué)數(shù)學(xué)五年級上冊期末高分通關(guān)試題
- 地方公務(wù)員考試:2022西藏真題及答案
- 電化學(xué)培優(yōu)專題
評論
0/150
提交評論