分佈式、集羣和微服務之間的區別

分佈式、集羣和微服務之間的區別

     分佈式系統是一種系統範式,而分佈式架構是一種系統設計的方法論。它們的含義在某些情況下可能會重疊,但在其他情況下可能會有細微的區別。

    分佈式系統

1. 分佈式系統概念
是指由多個相互獨立的節點(或者進程)組成的系統,這些節點通過網絡進行通信和協作,共同完成系統的功能。分佈式系統的節點可以是物理機、虛擬機、容器等各種形式,它們之間可以通過消息傳遞、遠程調用等方式進行通信。

2. 分佈式系統設計目標
提高系統的可擴展性和容錯性。通過將系統拆分爲多個部分,並將這些部分分佈在不同的計算機上,可以降低單個節點的負載壓力,提高系統的併發處理能力和容錯性。


3. 分佈式系統有哪些
典型的分佈式系統包括數據庫集羣、分佈式文件系統、分佈式緩存等。

4. 注意點

首先需要明確的是,分佈式對應的是就是單機,只有當單個節點的處理能力無法滿足日益增長的計算、存儲任務的時候,且硬件的提升(加內存、加磁盤、使用更好的CPU)高昂到得不償失的時候,應用程序也不能進一步優化的時候,我們才需要考慮分佈式系統。因爲,分佈式系統要解決的問題本身就是和單機系統一樣的,而由於分佈式系統多節點、通過網絡通信的拓撲結構,會引入很多單機系統沒有的問題,比如:複雜的通信協議、數據一致性、容錯性等問題,爲了解決這些問題又會引入更多的機制、協議(比如分佈式一致性協議),帶來更多的問題


分佈式架構

分佈式架構則更多地指的是一種設計模式或架構風格,它強調系統的不同部分分佈在不同的節點上,並通過網絡進行通信和協作。分佈式架構通常關注系統的組織結構、通信協議、數據傳輸方式等方面的設計。在軟件系統中,分佈式架構通常用於構建分佈式應用程序或服務。

集羣
集羣是指指多個節點做同一件事情。而分佈式指多個節點,各自做不同事情,共同完成系統的功能。


微服務:

微服務是一種架構風格,將一個大型的軟件應用拆分成一組小型的、獨立部署的服務。每個服務都圍繞着特定的業務功能進行構建,並可以獨立部署、擴展和維護。
微服務架構強調將應用拆分成多個小型的服務,每個服務都有自己獨立的數據存儲和業務邏輯,通過輕量級的通信機制(如HTTP/RESTful API)進行交互。
微服務架構的優勢包括提高開發和部署速度、靈活性、可伸縮性和可維護性。每個微服務都可以由小團隊獨立開發和管理,有利於快速迭代和創新。

注意事項:
1)微服務劃分的程度根據業務不同而粒度不同,不是越細越好。因爲一旦一個微服務的實體對象進行了調整,那麼有多少個關聯的微服務被污染了,就要不斷定位其他微服務的依賴關係並重新發布,這種工作量已經超出了本該解決業務問題的工作量。
2)RPC之間的對象傳遞儘量用簡單、鬆散的結構來做。以提高通信效率、降低系統複雜性,並支持系統的可擴展性和靈活性

區別:

分佈式系統是一種系統架構,而微服務是一種設計思想或架構風格。
分佈式系統可以包含多種不同的架構風格比如:SOA、P2P等,微服務只是其中之一。
微服務是在分佈式系統的基礎上發展出來的一種更加細粒度的架構方式,強調服務的自治性和獨立部署。
微服務架構是一種分佈式系統的設計選擇,但並不是所有分佈式系統都採用微服務架構。

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