概念
分布式是指將不同的業(yè)務(wù)分布在不同的地方。
而集群指的是將幾臺(tái)服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù)。
分布式中的每一個(gè)節(jié)點(diǎn),都可以做集群。
而集群并不一定就是分布式的。
就比如新浪網(wǎng),訪問的人多了,他可以做一個(gè)群集,
前面放一個(gè)響應(yīng)服務(wù)器,后面幾臺(tái)服務(wù)器完成同一業(yè)務(wù),如果有業(yè)務(wù)訪問的時(shí)候,響應(yīng)服務(wù)器看哪臺(tái)服務(wù)器的負(fù)載不是很重,就將給哪一臺(tái)去完成。
而分布式,從窄意上理解,也跟集群差不多,
但是個(gè)人覺得,它的組織比較松散,不像集群,有一個(gè)組織性,一臺(tái)服務(wù)器垮了,其它的服務(wù)器可以頂上來。
分布式的每一個(gè)節(jié)點(diǎn),都完成不同的業(yè)務(wù),一個(gè)節(jié)點(diǎn)垮了,哪這個(gè)業(yè)務(wù)就不可訪問了。
何時(shí)要用分布式
- 單臺(tái)服務(wù)器無法承受壓力。
- 需要實(shí)現(xiàn)發(fā)生錯(cuò)誤時(shí)候,自動(dòng)切換
- 學(xué)習(xí)或者測(cè)試分布式技術(shù)
應(yīng)用分布式的場(chǎng)景
一、提供多個(gè)對(duì)外的接口,按照一定規(guī)則,分派不同請(qǐng)求由不同接口來處理。
這時(shí)候需要考慮:
- 如何實(shí)現(xiàn)負(fù)載均衡
- 在哪個(gè)層次實(shí)現(xiàn)轉(zhuǎn)移負(fù)載
- 負(fù)載的均衡如何實(shí)現(xiàn)
- 如何實(shí)現(xiàn)故障轉(zhuǎn)移
二、把一個(gè)功能拆分成多個(gè)功能,不同功能分布部署到不同服務(wù)器上
- 對(duì)外功能的拆分
- http://news.sina.com.cn/ http://sports.sina.com.cn/ http://mobile.sina.com.cn/
- http://www.microsoft.com/china/ http://www.microsoft.com/downloads/
- SOA
- n層架構(gòu),其中的一些層分布到不同服務(wù)器上
網(wǎng)站請(qǐng)求中的分布式
按照請(qǐng)求流程,我們可以在以下環(huán)節(jié)按照一定規(guī)則,把用戶的請(qǐng)求分流到不同服務(wù)器上:
- Web Client Level
- 例子:QQ 設(shè)置中你可以選擇登陸的服務(wù)器IP
- DNS Based Selection
- 優(yōu)點(diǎn):
- 缺點(diǎn):
- 不能區(qū)分服務(wù)器的差異,也不能反映服務(wù)器的當(dāng)前運(yùn)行狀態(tài)。
- DNS 的刷新需要時(shí)間,無法及時(shí)故障切換。
- TCP balancing proxies
- HTTP-aware routers
- URL重定向
網(wǎng)站應(yīng)用中的分布式
- 代理服務(wù)器實(shí)現(xiàn)請(qǐng)求的分離
- Squid是Linux下一個(gè)緩存Internet數(shù)據(jù)的代理服務(wù)器軟件
- 拆分網(wǎng)站對(duì)外功能
- SOA
- 每個(gè)Service 分布到一臺(tái)服務(wù)器上
- n 層架構(gòu)
- 緩存分布式部署
- 文件Cache
- 內(nèi)存Cache (memcached )
- http://www.danga.com/memcached/
- https://sourceforge.net/projects/memcacheddotnet/
- DB分布式集群部署
- 故障轉(zhuǎn)移
- 發(fā)布訂閱
- 分布式分區(qū)視圖
- 應(yīng)用服務(wù)器(比如定時(shí)發(fā)送郵件通知的服務(wù))
- 相關(guān)技術(shù):
- 企業(yè)服務(wù)
- .net Remoting
- WCF
- Web Service
如何判斷一個(gè)應(yīng)用是否支持分布式
如果發(fā)現(xiàn)某一部分應(yīng)用需要做分布式了,就可以按照以下思路來考慮如何改造:
從應(yīng)用所用數(shù)據(jù)看是否支持分布式
- 多份并存數(shù)據(jù)(一個(gè)數(shù)據(jù)存在多份)最大多長時(shí)間同步一次是可接受的。
- 內(nèi)存緩存的數(shù)據(jù)跟數(shù)據(jù)庫的數(shù)據(jù)(頁面級(jí)緩存和業(yè)務(wù)邏輯緩存)
- 靜態(tài)文件跟數(shù)據(jù)庫
- 查詢數(shù)據(jù)庫跟業(yè)務(wù)變更數(shù)據(jù)庫
- 數(shù)據(jù)按照一定規(guī)則拆分(一個(gè)數(shù)據(jù)只存在一份)對(duì)業(yè)務(wù)是否有影響
- 過去每年的數(shù)據(jù)遷移到一個(gè)對(duì)應(yīng)歷史庫中。
- 專用的圖片服務(wù)器 http://pics.ebaystatic.com/
此處可分析:QQ的在線用戶數(shù)據(jù),會(huì)是如何處理的呢?
從應(yīng)用邏輯過程看是否支持分布式
- 是否可以并行執(zhí)行這個(gè)邏輯過程
- 這個(gè)邏輯過程是否可以拆分成幾個(gè)松耦合的過程
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。