1. 程式人生 > >高可用叢集與分散式資料庫的區別

高可用叢集與分散式資料庫的區別

最近在研究分散式資料庫,發現有些功能高可用架構的叢集也可以實現,混淆了兩者概念,今天小小總結一下

分散式資料庫百度百科的概念為:分布式資料庫系統通常使用較小的計算機系統,每臺計算機可單獨放在一個地方,每臺計算機中都可能有DBMS的一份完整拷貝副本,或者部分拷貝副本,並具有自己區域性的資料庫,位於不同地點的許多計算機通過網路互相連線,共同組成一個完整的、全域性的邏輯上集中、物理上分佈的大型資料庫。

資料庫叢集,顧名思義,就是利用至少兩臺或者多臺資料庫伺服器,構成一個虛擬單一資料庫邏輯映像,像單資料庫系統那樣,向客戶端提供透明的資料服務。

簡單來說,分散式是指將不同的業務分佈在不同的地方。 而叢集指的是將幾臺伺服器集中在一起,實現同一業務。 
分散式中的每一個節點,都可以做叢集。 而叢集並不一定就是分散式的。 

叢集一個節點垮了,其他節點可以頂上來使用,而分散式每個節點都是不同的業務,一旦垮掉,則對應的業務也無法訪問。
 

看到一個小例子:

如果一個任務由10個子任務組成,每個子任務單獨執行需1小時,則在一臺伺服器上執行改任務需10小時。

採用分散式方案,提供10臺伺服器,每臺伺服器只負責處理一個子任務,不考慮子任務間的依賴關係,執行完這個任務只需一個小時。(這種工作模式的一個典型代表就是Hadoop的Map/Reduce分散式計算模型)

而採用叢集方案,同樣提供10臺伺服器,每臺伺服器都能獨立處理這個任務。假設有10個任務同時到達,10個伺服器將同時工作,10小後,10個任務同時完成,這樣,整身來看,還是1小時內完成一個任務!