在給定上下文的軟件體系結構中,爲了解決某些常常出現的問題而造成的通用且可重用的解決方案稱之爲架構模式,而常見的體系架構模式主要有如下十種html
而下面我將詳細介紹主從設備模式
的概念,以及它的用法、在實際中常見的應用場景和優缺點等服務器
主從設備模式
也叫作主僕模式
英文簡稱爲Master-Slave
,核心思想是基於分而治之的思想,將一個原始任務分解爲若干個語義等同的子任務,並由專門的工做者線程來並行執行這些任務,原始任務的結果是經過整合各個子任務的處理結果造成的.主要的使用場景有架構
在分佈式的系統中,這個模式仍是比較經常使用的,簡單的說,主從(Master-Slave)
與進程-線程
的關係相似,Master
只有一臺機器做爲Master
,其餘機器做爲Slave
,這些機器同時運行組成了集羣
.Master
做爲任務調度者,給多個Slave
分配計算任務,當全部的Slave
將任務完成以後,最後由Master
聚集結果,這個其實也是MapReduce
思想所在.
例如在Hadoop
中,HDFS
採用了基於Master/Slave
主從架構的分佈式文件系統,一個HDFS
集羣包含一個單獨的Master
節點和多個Slave
節點服務器,這裏的一個單獨的Master節點的含義是HDFS系統中只存在一個邏輯上的Master組件。一個邏輯的Master節點能夠包括兩臺物理主機,即兩臺Master服務器、多臺Slave服務器。一臺Master服務器組成單NameNode
集羣,兩臺Master服務器組成雙NameNode
集羣,而且同時被多個客戶端訪問,全部的這些機器一般都是普通的Linux機器,運行着用戶級別(user-level)的服務進程.oracle
在上圖中展現了 HDFS 的 NameNode , DataNode 以及客戶端之間的存取訪問關係, NameNode
做爲 Master
服務,它負責管理文件系統的命名空間和客戶端對文件的訪問。NameNode
會保存文件系統的具體信息,包括文件信息、文件被分割成具體block
塊的信息、以及每個block
塊歸屬的DataNode
的信息。對於整個集羣來講,HDFS
經過NameNode
對用戶提供了一個單一的命名空間。DataNode
做爲slave
服務,在集羣中能夠存在多個。一般每個DataNode
都對應於一個物理節點。DataNode
負責管理節點上它們擁有的存儲,它將存儲劃分爲多個block
塊,管理block
塊信息,同時週期性的將其全部的block
塊信息發送給NameNode
。分佈式