1. 程式人生 > >單機、集群和分布式(微服務結構)

單機、集群和分布式(微服務結構)

請求 多個 src 數據分析 服務 每次 quest 技術分享 在線

一、單機

  單機就是所有的業務全部寫在一個項目中,部署服務到一臺服務器上,所有的請求業務都由這臺服務器處理。顯然,當業務增長到一定程度的時候,服務器的硬件會無法滿足業務需求。自然而然地想到一個程序不行就部署多個嘍,

這就是集群。

二、 集群

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

負載均衡:協調集群裏的每個節點均衡地接受業務請求。通俗的講就是服務A和服務B相同時間段內處理的同類業務請求數量是相似的

技術分享圖片

集群的特點:

擴展性好:集群只是單機的多個復制,沒有改變單機的原有的代碼結構,每次部署新節點只需要復制部署即可。

單個節點業務耦合度高、資源浪費:節點是多個業務處理集合(耦合高),每個具體業務的訪問量可能差異很大,比如JD上賬戶管理模塊的訪問量肯定低於訂單模塊,

然而賬戶管理模塊和訂單模塊的部署數量是一樣的(因為每個節點裏都有這兩個模塊),相對訂單模塊來說,部署同樣多的賬戶管理模塊就是浪費。

那就把單機節點不同的業務處理模塊拆開嘍,這就是分布式了

三、分布式(微服務)

分布式結構就是將一個完整的系統,按照業務功能,拆分成一個個獨立的子系統,在分布式結構中,每個子系統就被稱為“服務”。這些子系統能夠獨立運行在web容器中,它們之間通過RPC方式通信。

舉個例子,假設需要開發一個在線商城。按照微服務的思想,我們需要按照功能模塊拆分成多個獨立的服務,如:用戶服務、產品服務、訂單服務、後臺管理服務、數據分析服務等等。

這一個個服務都是一個個獨立的項目,可以獨立運行。如果服務之間有依賴關系,那麽通過RPC方式調用。

優點:

  1. 系統之間的耦合度大大降低,可以獨立開發、獨立部署、獨立測試,系統與系統之間的邊界非常明確,排錯也變得相當容易,開發效率大大提升。
  2. 系統之間的耦合度降低,從而系統更易於擴展。我們可以針對性地擴展某些服務,就是對子系統集群。例如雙十一時,訂單子系統、支付子系統需要集群,賬戶管理子系統不需要集群。
  3. 服務的復用性更高。比如,當我們將用戶系統作為單獨的服務後,該公司所有的產品都可以使用該系統作為用戶系統,無需重復開發。



參考鏈接:https://www.zhihu.com/question/20004877/answer/282033178

單機、集群和分布式(微服務結構)