Posted in architecture on 十月 17th, 2010 by kafka0102
Scalable System Design Patterns 一文概括了幾種常見的系統(tǒng)設(shè)計模式。配圖很漂亮,我就索性摘過來,推薦感興趣的繼續(xù)圍觀其博客。
該模式中,一個分發(fā)器基于某種策略確定由哪個worker實例處理請求。應(yīng)用最好是無狀態(tài)的,以使任何一個worker實例都能同等處理請求。大量的網(wǎng)站都會用到負(fù)載均衡器這個模式的。
該模式中,分發(fā)器將請求轉(zhuǎn)發(fā)給多個worker實例,每個worker實例處理完返回給分發(fā)器,分發(fā)器將worker們返回的結(jié)果再加工后再返回給客戶端。以搜索為例,通常得AS、BS架構(gòu)就是這種典型模式。
承接上個模式,這個模式只是在分發(fā)器處理時加了一步查詢結(jié)果緩存,這都能算是模式!
這個模式還有個更廣泛的名字–“黑板模式”。實現(xiàn)來說,就是在處理流程中,存在一個全局傳遞的對象,它可能包含了請求參數(shù)、中間狀態(tài)、響應(yīng)結(jié)果等各種信息,供流程中的各個組件對其進(jìn)行操作。在一些web框架和應(yīng)用框架中,都可見這個模式的使用。
這個模式又以“面向數(shù)據(jù)流編程”知名,是很通用的企業(yè)集成模式。
因為google和hadoop,這個模式幾乎都了解些,盡管多數(shù)人都沒親身應(yīng)用過。
該模型基于一個master協(xié)調(diào),所有的worker同步(lock-step)執(zhí)行。
該模式被用于Google Pregel Graph Processing google-pregel-graph-processing 和Hama。
又一個不很了解的模式,似乎是一個和map reduce有一拼的分布式計算模型,似乎是微軟的創(chuàng)造:Microsoft’s Dryad project。