成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

架構師不可不知的十大可擴展架構

譯文
運維 系統運維
可擴展性正是如今軟件設計領域最值得優先考慮的要素。然而,計算機科學家們還無法了解一套單獨的架構如何才能擴展至各類應用環境當中。相反,我們在數量繁多的方案中所設計出的可擴展性架構,往往以業界較為通用的已知可擴展模式及個人偏好為標準。本文列出了十大大家耳熟能詳的可擴展性架構,以供借鑒。

【51CTO精選譯文】對于大多數架構師而言,“可擴展性”在軟件架構方面是最虛無縹緲的說法。這毫不奇怪,因為可擴展性正是如今軟件設計領域最值得優先考慮的要素。然而,計算機科學家們還無法了解一套單獨的架構如何才能擴展至各類應用環境當中。相反,我們在數量繁多的方案中所設計出的可擴展性架構,往往以業界較為通用的已知可擴展模式及個人偏好為標準。簡單來講,打造一套具備可擴展性的系統已經變得更像是一門藝術而不單單是技術。

我們常常會通過觀摩杰作體會并學習藝術的精髓,而可擴展性也應該遵循同樣的路線!

在這篇文章中,我將列出數款為大家所耳熟能詳的可擴展性架構。通常情況下,架構師們完全可以借鑒已知的可擴展架構模式,進而創造出新的可擴展架構。

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

綜上所述,可擴展性的實現只有三種方式,即:分布、緩存及異步處理。前文所提到的各種架構事實上都是把這三種方式進行不同組合并加以實施。而另一方面,不利于可擴展性的因素,除了糟糕的編碼本身,全局性協調也起到了重要的影響。簡單來說,任何一種全局性協調都會限制系統的可擴展性。本文中所提到的各種架構也只是在做好了本地性協調,而非全局性協調。

然而,將它們有機地結合起來以創建一套***可擴展性的架構可不像說起來那么容易,除非我們能找到一種全新的擴展模式。不過經驗告訴我們,比起搞一套全新的架構,采用為我們所熟知且更易駕馭的可擴展性解決方案永遠是更好的選擇。

原文:List of Known Scalable Architecture Templates

【編輯推薦】

  1. 教你五招,快速提升MySQL可擴展性
  2. 為什么需要高性能和高可擴展性
  3. 互聯網運營智慧--高可用可擴展網站技術實戰
責任編輯:yangsai 來源: 51CTO.com
相關推薦

2019-07-30 08:02:57

Python編程語言代碼

2011-05-06 13:45:17

Linux服務器配置

2010-06-11 14:46:38

可路由協議

2020-01-06 08:00:49

大數據分析數據技術

2012-03-16 17:15:43

JMP10數據分析

2021-12-30 10:54:53

Hive調優實踐

2024-08-12 08:00:00

人工智能開發AI編程助理

2016-11-22 08:20:32

2009-04-08 10:25:20

光棍休閑

2020-03-02 15:23:43

云計算云架構師

2020-10-16 12:10:10

云架構云計算云端

2020-11-30 13:12:04

Linux文本命令

2015-01-15 09:34:28

2009-07-22 17:21:00

2023-09-25 12:07:43

VS Code開發

2023-10-10 18:07:34

VS Code開發

2015-03-04 14:54:47

DockerIT管理基礎設施

2010-08-16 10:22:00

虛擬化技術應用環境

2022-08-17 15:09:08

區塊鏈加密貨幣NFT

2023-09-27 18:02:31

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品亚洲一区二区三区浴池 | 视频一区二区在线观看 | 欧美日韩在线观看视频 | 亚洲国产aⅴ精品 | 国产一区二区三区四区 | 久久精品国产99国产 | www国产成人免费观看视频,深夜成人网 | 在线免费观看黄色av | 亚洲一区二区三区视频免费观看 | 91精品国产乱码久久久久久久 | 超级碰在线 | 日韩一区二区三区在线 | 亚洲国产成人精品女人久久久 | 手机看黄av免费网址 | 99pao成人国产永久免费视频 | 久久精品国产一区 | 日本三级网站在线观看 | 99国产精品99久久久久久 | 亚洲综合日韩精品欧美综合区 | 91视频在线 | 国产小u女发育末成年 | 精品少妇一区二区三区日产乱码 | 欧美日韩成人影院 | 777毛片| 污书屋| 成人在线免费观看视频 | 特级黄一级播放 | 国产精品一区二区三区四区 | 成人精品国产免费网站 | 黑人性hd| 精品国产免费人成在线观看 | 伊人久久一区二区 | 秋霞av国产精品一区 | 午夜视频免费在线观看 | 天天操 天天操 | 欧美中文字幕一区二区三区亚洲 | 亚洲欧美另类在线 | 国产日韩一区 | 2019天天干天天操 | 91高清视频在线观看 | 一级欧美一级日韩片免费观看 |