作為一個架構師不可不知的4大可擴展架構,你知道嗎?

可擴展性正是如今軟件設計領域最值得優先考慮的要素。然而,計算機科學家們還無法瞭解一套單獨的架構如何才能擴展至各類應用環境當中。下面就列出十4大大家耳熟能詳的可擴展性架構,以供借鑑。

作為一個架構師不可不知的4大可擴展架構,你知道嗎?

1、LB (負載平衡器) + 無共享單位 - 該模型中包含一系列單元,各單元彼此間不共享任何內容,且一致指向一個將輸入文訊按一定條件發往單元處的負載平衡器(這構成一個循環,以負載等情況為基礎)。每個單元可以是一個單獨的節點或是緊密耦合的節點所構成的集群。用戶可以使用DNS循環、硬件負載平衡器或者軟件負載平衡器達成負載平衡效果。創建一套負載均衡的層次結構,並在其中結合前面提到的各種負載平衡器也是可行的。

作為一個架構師不可不知的4大可擴展架構,你知道嗎?

2、點對點架構 (分佈式Hash列表 (簡稱DHT)以及內容尋址網絡(簡稱CAN)) -這套模型提供了一些傳統的可擴展算法,這些算法的各個方面幾乎全部按對數進行了等比例增加。舉例來說,像Chord、Pastry(特指免費版)以及CAN都屬於此類。而以Cassandra為代表的、基於P2P架構的幾款NoSQL系統也是其中的成員。

作為一個架構師不可不知的4大可擴展架構,你知道嗎?

3、責任樹形圖 - 這種模型打破了遞歸問題的束縛,將整個流程以樹狀形式加以處理;每個父節點將工作下放至子節點。這種模型擴展性強,並已經被應用於數款可擴展性架構當中。

作為一個架構師不可不知的4大可擴展架構,你知道嗎?

4、分佈式隊列 – 這種模型以將隊列實施(即先進先出交付機制)作為網絡服務處理為基礎。該模型通過JMS隊列而廣泛得到採用。一般會遵循這種做法的有任務隊列以及通過保持隊列分級體系實現擴展性的任務隊列版本,後者在負載無法及時處理時,任務會由低級層面向高級層面傳遞。

作為一個架構師不可不知的4大可擴展架構,你知道嗎?

可擴展性的實現只有三種方式,即:分佈、緩存及異步處理。前文所提到的各種架構事實上都是把這三種方式進行不同組合並加以實施!


分享到:


相關文章: