Posted on 2006-09-21 15:34
Coolfiry 閱讀(789)
評論(0) 編輯 收藏
網(wǎng)站如何做分布式(集群)的大綱
何時要用分布式
- 單臺服務(wù)器無法承受壓力。
- 需要實現(xiàn)發(fā)生錯誤時候,自動切換
- 學習或者測試分布式技術(shù)
應(yīng)用分布式的場景
一、提供多個對外的接口,按照一定規(guī)則,分派不同請求由不同接口來處理。
這時候需要考慮:
- 如何實現(xiàn)負載均衡
- 在哪個層次實現(xiàn)轉(zhuǎn)移負載
- 負載的均衡如何實現(xiàn)
- 如何實現(xiàn)故障轉(zhuǎn)移
二、把一個功能拆分成多個功能,不同功能分布部署到不同服務(wù)器上
- 對外功能的拆分?
- 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)站請求中的分布式
按照請求流程,我們可以在以下環(huán)節(jié)按照一定規(guī)則,把用戶的請求分流到不同服務(wù)器上:
- Web Client Level
- 例子:QQ 設(shè)置中你可以選擇登陸的服務(wù)器IP
- DNS Based Selection
- 優(yōu)點:
- 缺點:
- 不能區(qū)分服務(wù)器的差異,也不能反映服務(wù)器的當前運行狀態(tài)。
- DNS 的刷新需要時間,無法及時故障切換。
- TCP balancing proxies
- HTTP-aware routers
- URL重定向
網(wǎng)站應(yīng)用中的分布式
- 代理服務(wù)器實現(xiàn)請求的分離
- Squid是Linux下一個緩存Internet數(shù)據(jù)的代理服務(wù)器軟件
- 拆分網(wǎng)站對外功能
- SOA
- 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ù)器(比如定時發(fā)送郵件通知的服務(wù))
- 相關(guān)技術(shù):
- 企業(yè)服務(wù)
- .net Remoting
- WCF
- Web Service
?
如何判斷一個應(yīng)用是否支持分布式
如果發(fā)現(xiàn)某一部分應(yīng)用需要做分布式了,就可以按照以下思路來考慮如何改造:
從應(yīng)用所用數(shù)據(jù)看是否支持分布式
- 多份并存數(shù)據(jù)(一個數(shù)據(jù)存在多份)最大多長時間同步一次是可接受的。
- 內(nèi)存緩存的數(shù)據(jù)跟數(shù)據(jù)庫的數(shù)據(jù)(頁面級緩存和業(yè)務(wù)邏輯緩存)
- 靜態(tài)文件跟數(shù)據(jù)庫
- 查詢數(shù)據(jù)庫跟業(yè)務(wù)變更數(shù)據(jù)庫
- 數(shù)據(jù)按照一定規(guī)則拆分(一個數(shù)據(jù)只存在一份)對業(yè)務(wù)是否有影響
- 過去每年的數(shù)據(jù)遷移到一個對應(yīng)歷史庫中。
- 專用的圖片服務(wù)器 http://pics.ebaystatic.com/
此處可分析:QQ的在線用戶數(shù)據(jù),會是如何處理的呢?
從應(yīng)用邏輯過程看是否支持分布式
- 是否可以并行執(zhí)行這個邏輯過程
- 這個邏輯過程是否可以拆分成幾個松耦合的過程
微軟技術(shù)支持的5種分布式
夏桅的這篇博客中的圖表就可以很詳細的對比這5種分布式:
Windows的第五種群集方案 - CCS