單機,集羣,分佈式架構分析

程序部署方面

單機:

描述:一個系統業務量很小的時候所有的代碼都放在一個項目中就好了,然後這個項目部署在一臺服務器上就好了。整個項目所有的服務都由這臺服務器提供。這就是單機結構

缺點:單機的處理能力畢竟是有限的,當你的業務增長到一定程度的時候,單機的硬件資源將無法滿足你的業務需求。

集羣:

描述:集羣就是單機的多實例,在多個服務器上部署多個服務,每個服務就是一個節點,部署N個節點,處理業務的能力就提升 N倍(大約),這些節點的集合就叫做集羣。

通過負載均衡,協調集羣裏的每個節點均衡地接受業務請求。通俗的講就是服務A和服務B相同時間段內處理的同類業務請求數量是相似的減輕服務器壓力,能夠將業務請求均等分配 (中間件可以使用nginx)

 

優點:擴展性好集羣只是單機的多個複製,沒有改變單機的原有的代碼結構,每次部署新節點只需要複製部署即可。減輕服務器壓力,增加服務器訪問容量提升服務器壓力。

缺點: 單個節點業務耦合度高、資源浪費:節點是多個業務處理集合(耦合高),每個具體業務的訪問量可能差異很大。

但是他們部署的節點卻是一樣的,浪費服務器資源。(解決該問題用到的架構就是分佈式了)。

分佈式:

 分佈式結構就是將一個完整的系統,按照業務功能,拆分成一個個獨立的子系統,在分佈式結構中,每個子系統就被稱爲“服務”。這些子系統能夠獨立運行在web容器中,它們之間通過RPC方式通信。這樣我們可以根據業務的訪問量來部署服務的多少。

優點:

系統之間的耦合度大大降低,可以獨立開發、獨立部署、獨立測試,系統與系統之間的邊界非常明確,排錯也變得相當容易,開發效率大大提升。

系統之間的耦合度降低,從而系統更易於擴展。我們可以針對性地擴展某些服務,就是對子系統集羣。

服務的複用性更高。比如,當我們將用戶系統作爲單獨的服務後,該公司所有的產品都可以使用該系統作爲用戶系統,無需重複開發。

 

數據庫方面:

單一數據庫:

缺點:數據量太大導致性能下降;

數據文件會變得很大,導致數據備份恢復會變得很慢;

數據文件越大,極端情況數據丟失的風險更高。

這些問題可以通過數據庫分庫解決。

 

數據庫分庫:

把一個數據庫切分成多個部分放在不同的數據庫上。緩解單一數據庫的性能問題。

 

數據庫優化:

數據庫讀寫分離:

優點:

增加了機器的數據處理能力

提升數據讀寫速度。

 

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