coolfiry

          認認真真做人,兢兢業(yè)業(yè)做事!
          posts - 39, comments - 17, trackbacks - 0, articles - 0
          網站如何做分布式(集群)的大綱

          何時要用分布式

          • 單臺服務器無法承受壓力。
          • 需要實現發(fā)生錯誤時候,自動切換
          • 學習或者測試分布式技術

          應用分布式的場景


          一、提供多個對外的接口,按照一定規(guī)則,分派不同請求由不同接口來處理。
          這時候需要考慮:
          • 如何實現負載均衡
            • 在哪個層次實現轉移負載
            • 負載的均衡如何實現
          • 如何實現故障轉移
            • 如何監(jiān)控故障
            • 如何切換服務

          二、把一個功能拆分成多個功能,不同功能分布部署到不同服務器上

          • 對外功能的拆分?
            • 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層架構,其中的一些層分布到不同服務器上
            • WEB + DB 模式

          網站請求中的分布式

          按照請求流程,我們可以在以下環(huán)節(jié)按照一定規(guī)則,把用戶的請求分流到不同服務器上:

          • Web Client Level
            • 例子:QQ 設置中你可以選擇登陸的服務器IP
          • DNS Based Selection
            • 優(yōu)點:
            • 缺點:
              • 不能區(qū)分服務器的差異,也不能反映服務器的當前運行狀態(tài)。
              • DNS 的刷新需要時間,無法及時故障切換。
          • TCP balancing proxies
            • 硬件
            • 軟件
          • HTTP-aware routers

          • URL重定向

          網站應用中的分布式

          • 代理服務器實現請求的分離
            • Squid是Linux下一個緩存Internet數據的代理服務器軟件
          • 拆分網站對外功能
            • 不同域名前、后綴
            • URL 重寫
          • SOA
            • 每個Service 分布到一臺服務器上
          • n 層架構
            • 緩存分布式部署
              • 文件Cache
              • 內存Cache (memcached )
                • http://www.danga.com/memcached/
                • https://sourceforge.net/projects/memcacheddotnet/
            • DB分布式集群部署
              • 故障轉移
              • 發(fā)布訂閱
              • 分布式分區(qū)視圖
            • 應用服務器(比如定時發(fā)送郵件通知的服務)

            • 相關技術:
              • 企業(yè)服務
              • .net Remoting
              • WCF
              • Web Service

          ?

          如何判斷一個應用是否支持分布式

          如果發(fā)現某一部分應用需要做分布式了,就可以按照以下思路來考慮如何改造:

          從應用所用數據看是否支持分布式

          • 多份并存數據(一個數據存在多份)最大多長時間同步一次是可接受的。
            • 內存緩存的數據跟數據庫的數據(頁面級緩存和業(yè)務邏輯緩存)
            • 靜態(tài)文件跟數據庫
            • 查詢數據庫跟業(yè)務變更數據庫
          • 數據按照一定規(guī)則拆分(一個數據只存在一份)對業(yè)務是否有影響
            • 過去每年的數據遷移到一個對應歷史庫中。
            • 專用的圖片服務器 http://pics.ebaystatic.com/

          此處可分析:QQ的在線用戶數據,會是如何處理的呢?

          從應用邏輯過程看是否支持分布式

          • 是否可以并行執(zhí)行這個邏輯過程

          • 這個邏輯過程是否可以拆分成幾個松耦合的過程

          微軟技術支持的5種分布式

          夏桅的這篇博客中的圖表就可以很詳細的對比這5種分布式:

          Windows的第五種群集方案 - CCS


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 蓬溪县| 互助| 河北省| 景德镇市| 卫辉市| 鄯善县| 于都县| 新化县| 平凉市| 库尔勒市| 大英县| 彭泽县| 嘉鱼县| 廉江市| 佛冈县| 烟台市| 桐城市| 龙岩市| 霍州市| 永寿县| 贵阳市| 嘉祥县| 延寿县| 定西市| 缙云县| 江达县| 平果县| 卓资县| 井冈山市| 梁河县| 新巴尔虎左旗| 正蓝旗| 咸宁市| 和硕县| 罗源县| 合江县| 丹棱县| 读书| 大埔区| 沧州市| 富裕县|