


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、分布式系統(tǒng)的架構(gòu)思路一、前言在計(jì)算機(jī)領(lǐng)域,當(dāng)單機(jī)性能達(dá)到瓶頸時(shí),有兩種方式可以解決性能問題,一是堆硬件,進(jìn)一步提升配置,二是分布式,水平擴(kuò)展。當(dāng)然,兩者都是一樣的燒錢。今天聊聊我所理解的分布式系統(tǒng)的架構(gòu)思路。二、分布式系統(tǒng)的兩種方式平時(shí)接觸到的分布式系統(tǒng)有很多種,比如分布式文件系統(tǒng),分布式數(shù)據(jù)庫(kù),分布式WebService,分布式計(jì)算等等,面向的情景不同,但分布式的思路是否是一樣的呢?1.簡(jiǎn)單的例子假設(shè)我們有一臺(tái)服務(wù)器,它可以承擔(dān)1百萬(wàn)/秒的請(qǐng)求,這個(gè)請(qǐng)求可以的是通過http訪問網(wǎng)頁(yè),通過tcp下載文件,jdbc執(zhí)行sql,RPC調(diào)用接口,現(xiàn)在我們有一條數(shù)據(jù)的請(qǐng)求是2百萬(wàn)/秒,很顯然服務(wù)器ho
2、ld不住了,會(huì)各種拒絕訪問,甚至崩潰,宕機(jī),怎么辦呢。一臺(tái)機(jī)器解決不了的問題,那就兩臺(tái)。所以我們加一臺(tái)機(jī)器,每臺(tái)承擔(dān)1百萬(wàn)。如果請(qǐng)求繼續(xù)增加呢,兩臺(tái)解決不了的問題,那就三臺(tái)唄。這種方式我們稱之為水平擴(kuò)展。如何實(shí)現(xiàn)請(qǐng)求的平均分配便是負(fù)載均衡了。另一個(gè)栗子,我們現(xiàn)在有兩個(gè)數(shù)據(jù)請(qǐng)求,數(shù)據(jù)1 90萬(wàn),數(shù)據(jù)2 80萬(wàn),上面那臺(tái)機(jī)器也hold不住,我們加一臺(tái)機(jī)器來(lái)負(fù)載均衡一下,每臺(tái)機(jī)器處理45萬(wàn)數(shù)據(jù)1和40萬(wàn)數(shù)據(jù)2,但是平分太麻煩,不如一臺(tái)處理數(shù)據(jù)1,一臺(tái)處理數(shù)據(jù)2,同樣能解決問題,這種方式我們稱之為垂直拆分。水平擴(kuò)展和垂直拆分是分布式架構(gòu)的兩種思路,但并不是一個(gè)二選一的問題,更多的是兼并合用。下面介紹一
3、個(gè)實(shí)際的場(chǎng)景。這也是許多互聯(lián)網(wǎng)的公司架構(gòu)思路。2.實(shí)際的例子我此時(shí)所在的公司的計(jì)算機(jī)系統(tǒng)很龐大,自然是一個(gè)整的分布式系統(tǒng),為了方便組織管理,公司將整個(gè)技術(shù)部按業(yè)務(wù)和平臺(tái)拆分為部門,訂單的,會(huì)員的,商家的等等,每個(gè)部門有自己的web服務(wù)器集群,數(shù)據(jù)庫(kù)服務(wù)器集群,通過同一個(gè)網(wǎng)站訪問的鏈接可能來(lái)自于不同的服務(wù)器和數(shù)據(jù)庫(kù),對(duì)網(wǎng)站及底層對(duì)數(shù)據(jù)庫(kù)的訪問被分配到了不同的服務(wù)器集群,這個(gè)便是典型的按業(yè)務(wù)做的垂直拆分,每個(gè)部門的服務(wù)器在hold不住時(shí),會(huì)有彈性的擴(kuò)展,這便是水平擴(kuò)展。在數(shù)據(jù)庫(kù)層,有些表非常大,數(shù)據(jù)量在億級(jí),如果只是純粹的水平的擴(kuò)展并不一定最好,如果對(duì)表進(jìn)行拆分,比如可以按用戶id進(jìn)行水平拆表,通
4、過對(duì)id取模的方式,將用戶劃分到多張表中,同時(shí)這些表也可以處在不同的服務(wù)器。按業(yè)務(wù)的垂直拆庫(kù)和按用戶水平拆表是分布式數(shù)據(jù)庫(kù)中通用的解決方案。三、負(fù)載均衡前面我們談到了分布式來(lái)解決性能問題,但其附帶的問題是怎么分布,即如何負(fù)載均衡。這里要解決的問題是當(dāng)客戶端請(qǐng)求時(shí),應(yīng)該讓它請(qǐng)求分布式系統(tǒng)中哪一臺(tái)服務(wù)器,通常的做法是通過一臺(tái)中間服務(wù)器來(lái)給客服端分配目標(biāo)服務(wù)器。這里同樣拿兩個(gè)不同的分布式系統(tǒng)做說(shuō)明,下圖左邊是分布式文件系統(tǒng)FastDFS,右邊是一個(gè)用于分布式的RPC中間件。 FastDFS的一次文件下載請(qǐng)求過程是這樣的1.client詢問tracker可以下載指定文件的storage;2.track
5、er返回一臺(tái)可用的storage;3.client直接和storage通信完成文件下載。其中tracker便是負(fù)載均衡服務(wù)器,storage是存儲(chǔ)文件和處理上傳下載請(qǐng)求的服務(wù)器。 而另一個(gè)RPC中間件Hedwig也是類似的1.client詢問zookeeper哪臺(tái)server可以執(zhí)行請(qǐng)求;2.zookeeper返回一臺(tái)可用server;3.client直接與service完成一次RPC。zookeeper是分布式系統(tǒng)中一個(gè)負(fù)載均衡框架,google的chubby的一個(gè)開源實(shí)現(xiàn),是是Hadoop和Hbase的重要組件。同樣的在http中,常聽說(shuō)的nginx也是一個(gè)負(fù)載均衡服務(wù)器,它面向的是分布式
6、web服務(wù)器。至于具體的負(fù)載均衡算法輪詢,hash等這里就不深入了。四、同步分布式系統(tǒng)中,解決了負(fù)載均衡的問題后,另外一個(gè)問題就是數(shù)據(jù)的一致性了,這個(gè)就需要通過同步來(lái)保障。根據(jù)不同的場(chǎng)景和需求,同步的方式也是有選擇的。在分布式文件系統(tǒng)中,比如商品頁(yè)面的圖片,如果進(jìn)行了修改,同步要求并不高,就算有數(shù)秒甚至數(shù)分鐘的延遲都是可以接受的,因?yàn)橐话悴粫?huì)產(chǎn)生損失性的影響,因此可以簡(jiǎn)單的通過文件修改的時(shí)間戳,隔一定時(shí)間掃描同步一次,可以犧牲一致性來(lái)提高效率。但銀行中的分布式數(shù)據(jù)庫(kù)就不一樣了,一丁點(diǎn)不同步就是無(wú)法接受的,甚至可以通過加鎖等犧牲性能的方式來(lái)保障完全的一致。在一致性算法中paxos算法是公認(rèn)的最好的算法,chubby、
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動(dòng)合同書(供以完成一定任務(wù)為期限的市場(chǎng)營(yíng)銷專員)
- 貨物運(yùn)輸合同糾紛代理合同
- 國(guó)際結(jié)算保函抵押外匯借貸合同
- 補(bǔ)償貿(mào)易返銷合同樣本
- 二手車交易流程與手續(xù)辦理考核試卷
- 光電儀器原理與檢測(cè)技術(shù)考核試卷
- 農(nóng)產(chǎn)品初加工的農(nóng)產(chǎn)品加工質(zhì)量控制考核試卷
- 文化產(chǎn)業(yè)項(xiàng)目對(duì)接會(huì)考核試卷
- 健身器材行業(yè)用戶研究與市場(chǎng)細(xì)分考核試卷
- 小學(xué)生作文入門格式課件
- 《傳承非遺手藝》 教案 2024-2025學(xué)年湘美版(2024)初中美術(shù)七年級(jí)上冊(cè)
- 2024年河北省公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 建筑總工程師招聘面試題與參考回答2025年
- 2024年地理知識(shí)競(jìng)賽試題200題及答案
- 科學(xué)四年級(jí)下冊(cè)第一單元第4課《車來(lái)了》課件
- 中國(guó)西安旅游行業(yè)市場(chǎng)全景調(diào)研及未來(lái)趨勢(shì)研判報(bào)告
- 中債違約債券估值方法(2020年版)
- 《經(jīng)典常談》課件
- 陶瓷制品產(chǎn)業(yè)鏈優(yōu)化與協(xié)同創(chuàng)新
- 四川省2024年中考數(shù)學(xué)試卷十七套合卷【附答案】
- 北師大版二年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)10套試卷(附答案)
評(píng)論
0/150
提交評(píng)論