• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            面對(duì)現(xiàn)實(shí),超越自己
            逆水行舟,不進(jìn)則退
            posts - 269,comments - 32,trackbacks - 0

            轉(zhuǎn)自:http://www.itivy.com/ivy/archive/2011/11/24/something-that-architecture-must-be-aware-of.html

            對(duì)于大多數(shù)架構(gòu)師而言,“可擴(kuò)展性”在軟件架構(gòu)方面是最虛無(wú)縹緲的說(shuō)法。這毫不奇怪,因?yàn)榭蓴U(kuò)展性正是如今軟件設(shè)計(jì)領(lǐng)域最值得優(yōu)先考慮的要素。然 而,計(jì)算機(jī)科學(xué)家們還無(wú)法了解一套單獨(dú)的架構(gòu)如何才能擴(kuò)展至各類(lèi)應(yīng)用環(huán)境當(dāng)中。相反,我們?cè)跀?shù)量繁多的方案中所設(shè)計(jì)出的可擴(kuò)展性架構(gòu),往往以業(yè)界較為通用 的已知可擴(kuò)展模式及個(gè)人偏好為標(biāo)準(zhǔn)。簡(jiǎn)單來(lái)講,打造一套具備可擴(kuò)展性的系統(tǒng)已經(jīng)變得更像是一門(mén)藝術(shù)而不單單是技術(shù)。

            我們常常會(huì)通過(guò)觀摩杰作體會(huì)并學(xué)習(xí)藝術(shù)的精髓,而可擴(kuò)展性也應(yīng)該遵循同樣的路線(xiàn)!

            在這篇文章中,我將列出數(shù)款為大家所耳熟能詳?shù)目蓴U(kuò)展性架構(gòu)。通常情況下,架構(gòu)師們完全可以借鑒已知的可擴(kuò)展架構(gòu)模式,進(jìn)而創(chuàng)造出新的可擴(kuò)展架構(gòu)。

            1. LB (負(fù)載平衡器) + 無(wú)共享單位 - 該模型中包含一系列單元,各單元彼此間不共享任何內(nèi)容,且一致指向一個(gè)將輸入文訊按一定條件發(fā)往單元處的負(fù)載平衡器(這構(gòu)成一個(gè)循 環(huán),以負(fù)載等情況為基礎(chǔ))。每個(gè)單元可以是一個(gè)單獨(dú)的節(jié)點(diǎn)或是緊密耦合的節(jié)點(diǎn)所構(gòu)成的集群。用戶(hù)可以使用DNS循環(huán)、硬件負(fù)載平衡器或者軟件負(fù)載平衡器達(dá) 成負(fù)載平衡效果。創(chuàng)建一套負(fù)載均衡的層次結(jié)構(gòu),并在其中結(jié)合前面提到的各種負(fù)載平衡器也是可行的。在由Michael Stonebraker撰寫(xiě)的《 無(wú)共享體系架構(gòu)實(shí)例 》一文中,專(zhuān)門(mén)討論了此類(lèi)架構(gòu)。
               
            2. LB + 無(wú)狀態(tài)節(jié)點(diǎn) + 可擴(kuò)展存儲(chǔ) - 傳統(tǒng)的 三層式Web架構(gòu) 使用的就是這種模型。該模型包括數(shù)個(gè)與可擴(kuò)展存儲(chǔ)交互的無(wú)狀態(tài)節(jié)點(diǎn)以及一個(gè)分布于節(jié)點(diǎn)間負(fù)載中的負(fù)載平衡器。在這一模型中,存儲(chǔ)通常作為限制因素存在,但NoSQL存儲(chǔ)則可以利用這套模型創(chuàng)建出具備相當(dāng)可擴(kuò)展性的系統(tǒng)。
               
            3. 點(diǎn)對(duì)點(diǎn)架構(gòu) (分布式Hash列表 (簡(jiǎn)稱(chēng)DHT)以及內(nèi)容尋址網(wǎng)絡(luò)(簡(jiǎn)稱(chēng)CAN)) -這套模型提供了一些傳統(tǒng)的 可擴(kuò)展算法,這些算法的各個(gè)方面幾乎全部按對(duì)數(shù)進(jìn)行了等比例增加。舉例來(lái)說(shuō),像Chord、Pastry(特指免費(fèi)版)以及CAN都屬于此類(lèi)。而以 Cassandra為代表的、基于P2P架構(gòu)的幾款NoSQL系統(tǒng)也是其中的成員。《 展望P2P系統(tǒng)中的數(shù)據(jù) 》一文就深入探討了這類(lèi)模型的各種細(xì)節(jié)。
               
            4. 分布式隊(duì)列 – 這種模型以將隊(duì)列實(shí)施(即先進(jìn)先出交付機(jī)制)作為網(wǎng)絡(luò)服務(wù)處理為基礎(chǔ)。該模型通過(guò)JMS隊(duì)列而廣泛得到采用。一般會(huì)遵循這種做法的有任務(wù)隊(duì)列以及通過(guò)保持隊(duì)列分級(jí)體系實(shí)現(xiàn)擴(kuò)展性的任務(wù)隊(duì)列版本,后者在負(fù)載無(wú)法及時(shí)處理時(shí),任務(wù)會(huì)由低級(jí)層面向高級(jí)層面?zhèn)鬟f。
               
            5. 發(fā)布/訂閱模式 - 一般用于通過(guò)網(wǎng)絡(luò)向彼此發(fā)布訂閱訊息?!?nbsp;發(fā)布與訂閱的多面性 》這一經(jīng)典論文中詳細(xì)的介紹這一模型,該模型方面最典型的例子即 NaradaBroker與 EventJava 。
               
            6. 小道消息與自然靈感式模型 - 這種模型源自日常生活中小道消息的傳播途徑,也就是每個(gè)節(jié)點(diǎn)將隨機(jī)選擇后續(xù)節(jié)點(diǎn)以交 換信息。正如現(xiàn)實(shí)生活中的實(shí)際反饋,這種八卦型算法在信息傳播方面出奇地迅速。該模型的另一大分支則是受到生物學(xué)影響的啟發(fā)式算法。自然世界中存在著大量 協(xié)調(diào)及擴(kuò)展方面極為卓越的固有算法。舉例來(lái)說(shuō),螞蟻、人類(lèi)以及蜜蜂等等,都能夠以最簡(jiǎn)潔的交流方式協(xié)調(diào)好擴(kuò)展性方面的需要。模型中的算法正是借鑒了這些實(shí) 際存在的現(xiàn)象。在論文《 從流行病的蔓延到分布式計(jì)算 》中對(duì)這種模型有著詳盡的敘述。
               
            7. 地圖縮小/數(shù)據(jù)流 - 這一概念首先由谷歌公司提出,地圖縮小為工作的描述及執(zhí)行提供了一套可擴(kuò)展的模式。雖然內(nèi)容 簡(jiǎn)單,但它仍然成為聯(lián)機(jī)分析處理方面的首要處理模式。數(shù)據(jù)流則是一種更先進(jìn)的方式,用來(lái)表達(dá)執(zhí)行信息;而像Dryad及Pig這樣的項(xiàng)目為數(shù)據(jù)流的執(zhí)行提 供了可擴(kuò)展的框架。論文《 地圖縮?。捍笮图荷系暮?jiǎn)化數(shù)據(jù)處理 》中設(shè)置了專(zhuān)門(mén)的主題,詳細(xì)討論這一內(nèi)容。Apache的Hadoop就是這種模型的代表性產(chǎn)品。
               
            8. 責(zé)任樹(shù)形圖 - 這種模型打破了遞歸問(wèn)題的束縛,將整個(gè)流程以樹(shù)狀形式加以處理;每個(gè)父節(jié)點(diǎn)將工作下放至子節(jié)點(diǎn)。這種模型擴(kuò)展性強(qiáng),并已經(jīng)被應(yīng)用于數(shù)款可擴(kuò)展性架構(gòu)當(dāng)中。
               
            9. 流處理 - 這種模型被用于處理源源不斷的數(shù)據(jù)流及數(shù)據(jù)。這種處理方式通過(guò)網(wǎng)絡(luò)中的處理節(jié)點(diǎn)獲得支持(例如Aurora、Twitter Strom以及Apache S4等)。
               
            10. 可擴(kuò)展存儲(chǔ) – 該模型的應(yīng)用范圍從數(shù)據(jù)庫(kù)、NoSQL存儲(chǔ)、服務(wù)注冊(cè)到文件系統(tǒng)都有體現(xiàn)。 鏈接中的這篇文章 以可擴(kuò)展性為切入點(diǎn)對(duì)其進(jìn)行了深入討論。

            綜上所述,可擴(kuò)展性的實(shí)現(xiàn)只有三種方式,即:分布、緩存及異步處理。前文所提到的各種架構(gòu)事實(shí)上都是把這三種方式進(jìn)行不同組合并加以實(shí)施。而另一方 面,不利于可擴(kuò)展性的因素,除了糟糕的編碼本身,全局性協(xié)調(diào)也起到了重要的影響。簡(jiǎn)單來(lái)說(shuō),任何一種全局性協(xié)調(diào)都會(huì)限制系統(tǒng)的可擴(kuò)展性。本文中所提到的各 種架構(gòu)也只是在做好了本地性協(xié)調(diào),而非全局性協(xié)調(diào)。

            然而,將它們有機(jī)地結(jié)合起來(lái)以創(chuàng)建一套極具可擴(kuò)展性的架構(gòu)可不像說(shuō)起來(lái)那么容易,除非我們能找到一種全新的擴(kuò)展模式。不過(guò)經(jīng)驗(yàn)告訴我們,比起搞一套全新的架構(gòu),采用為我們所熟知且更易駕馭的可擴(kuò)展性解決方案永遠(yuǎn)是更好的選擇。

            posted on 2013-01-07 16:49 王海光 閱讀(529) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 其他
            久久丫精品国产亚洲av不卡| 久久综合日本熟妇| 久久99国产精一区二区三区| 亚洲一区中文字幕久久| 久久精品成人免费观看97| 久久无码AV中文出轨人妻| 久久精品毛片免费观看| 久久国产精品一区| 久久久久久亚洲AV无码专区| 久久伊人中文无码| www.久久热.com| 成人午夜精品无码区久久| 国产福利电影一区二区三区久久久久成人精品综合| 久久黄视频| 亚洲天堂久久精品| 色8久久人人97超碰香蕉987| 国内精品久久久久久久coent| 亚洲日本va中文字幕久久| 久久久久无码专区亚洲av| 婷婷久久综合九色综合98| 伊人久久大香线蕉综合影院首页| 中文字幕久久欲求不满| AV色综合久久天堂AV色综合在| 亚洲一级Av无码毛片久久精品| 91精品久久久久久无码| 久久国产乱子伦免费精品| 亚洲香蕉网久久综合影视| 色老头网站久久网| 一级a性色生活片久久无| 久久精品夜色噜噜亚洲A∨| 国产成人综合久久精品尤物| 久久免费高清视频| 国产精品久久永久免费| 国产精品久久久久久久久鸭| 久久av无码专区亚洲av桃花岛| 天天躁日日躁狠狠久久| 亚洲欧美日韩中文久久| 99久久婷婷国产综合亚洲| 国产精品美女久久久m| 国产成人久久激情91| 97精品伊人久久久大香线蕉|