大規模分佈式系統架構與設計實現 第二章------分佈式並行計算原理和實現

本章主要介紹了各種分佈式計算的運行模式。

1.master-slave結構

從結構上看的話,這個結構應該是最簡單的,結構框圖如下,這麼一個設備集羣,以其中一個設備爲master,作爲系統中樞,來調度其他的設備進行分佈式的運算等功能。
在這裏插入圖片描述
在這種情況下,只需要master和slave之間的一個通信,這個可以通過Socket來實現,master設備作爲SocketServer來運作。在這種模式下,也可以通過在單機上編寫多線性來模擬這樣的結構,線程之間通過線程共享變量來完成通信的過程。
這種模式下的弊端其實顯而易見,整個系統中的master太重要了,承擔了slave註冊,保活,刪除失效節點,分配協調節點等重要的工作,承擔的任務實在是太多了。那麼很顯然能想到的就是對master的工作進行分解,分離出部分任務交給其他的“設備”來進行處理。

2 包工頭-職介所-手工倉庫-工人模型

這一模型就是fourinone(什麼,你不知道fourinone,出門右轉找github),提出來的一個簡化的分佈式並行計算的設計模型。
在這裏插入圖片描述
在這個模型中,職介所是用來給包工頭介紹工人的,有工人加入的時候,先會向職介所進行註冊登記,包工頭在職介所中獲取工人,之後進行分佈式的計算。職介所和工人之間只需要保持鬆散的聯繫,詢問工人當前工作的完成情況,以便在工人空閒的時候並且,有新的工程的時候回繼續介紹這個工人。
工人是用來計算的一個節點,就相當於是前面的slave節點,工人和包工頭之間的交互可以理解爲直接聯繫,也可以是通過一個手工倉庫來完成彼此之間的聯繫。
包工頭接受項目,對他進行分解分配給不同的工人。

3 消息中樞模式

在這裏插入圖片描述
在這種模式中,工頭和工人之間是不直接進行通信的,工頭把任務以消息的方式發送到一個消息中樞的地方,工人會從相應的隊列裏去領取相關的任務。但是這個模式下會有很多東西用不了,比如工人超時完成任務或者工人任務過程中遇到故障終止都會導致系統出現故障。

4 基於網狀直接交互的計算模式

這裏主要就看一下工頭給工人分配任務
在這裏插入圖片描述
工頭和工人之間通過手工倉庫進行任務的交接,職介者只是在最初工頭和工人之間建立連接的時候使用到了,在這個工作完成之後,就算職介者掛掉了,也並不影響當前任務的完成。圖中還有另外一點,就是工人之間也是可以進行通信的,工人之間的通信其實就是在分佈計算過程中的數據的一個合併。

5 串並結合模式

工人並行工作,工頭之間串行工作;舉個例子,就像是一個工廠裏面,工頭就像是流水線的不同環節,在同一個環節裏面又會有很多個工人在做同樣的工作。

就這麼多。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章