概念
1、什麼是集群
集群:同乙個業務,部署在多個伺服器上(不同的伺服器執行同樣的**,幹同一件事)
集群是指將多台伺服器集中在一起,每台伺服器都實現相同的業務,做相同的事情。如果一台宕機,另一台可以起作用。
但是每台伺服器並不是缺一不可,存在的作用主要是緩解併發壓力和單點故障轉移問題。我們可以利用一些廉價的符合工業標準的硬體構造高擴充套件、高效能、低成本、高可用的系統。
2、什麼是分布式
分布式:乙個業務分拆多個子業務,部署在不同的伺服器上(不同的伺服器,執行不同的**,為了同乙個目。而集群指的是將幾台伺服器集中在一起,實現同一業務。
好處: 模組之間獨立,各做各的事,便於擴充套件,復用性高 高吞吐量
簡單說,分布式是以縮短單個任務的執行時間來提公升效率的,而集群則是通過提高單位時間內執行的任務數來提公升效率。
例如:如果乙個任務由 10 個子任務組成,每個子任務單獨執行需 1 小時,則在一台伺服器上執行該任務需 10 小時。
注:分布式需要做好事務管理。
乙個服務可能負責幾個功能,是一種面向 soa 的架構。各分開部署的部分彼此通過各種通訊協議互動資訊,並且每台伺服器都缺一不可,如果某台伺服器故障,則部分功能缺失,或導致整體無法執行。
所以:好的設計應該是分布式和集群相結合,先分布式再集群。具體實現就是業務拆分成很多子業務,然後針對每個子業務進行集群部署。這樣每個子業務如果出了問題,整個系統完全不會受影響。
3、什麼是微服務
微服務的概念和分布式比較相似,微服務是一種架構風格。簡單來說微服務就是很小的服務,小到乙個服務只對應乙個單一的功能。每個微服務僅關注於完成一件任務並很好地完成該任務,這個服務可以單獨部署執行。 各個微服務之間是松耦合的,服務之間可以通過 rpc 來相互互動。每個微服務都是由獨立的小團隊開發、測試、部署,上線,負責它的整個生命週期。
在做架構設計時,當你估算過最大使用者量和併發量後,計算出單個應用伺服器能否滿足需求。如果使用者量只有幾百人的小應用,單體應用就能搞定,即所有應用部署在乙個應用伺服器裡。如果是很大使用者量,且某些功能會被頻繁訪問,或者某些功能計算量很大,建議將應用拆解為多個子系統,各自負責各自功能,這就是微服務架構。
微服務的設計是為了不因為某個模組的公升級和 bug 影響現有的整個系統業務。微服務與分布式的細微差別是,微服務的應用不一定是分散在多個伺服器上,它也可以是同乙個伺服器。
微服務相比分布式服務來說,它的粒度更小,服務之間耦合度更低。由於每個微服務都由獨立的小團隊負責,因此它敏捷性更高。分布式服務最後都會向微服務架構演化,這是一種趨勢。不過服務微服務化後帶來的挑戰也是顯而易見的,例如服務粒度小,數量大,後期運維難度會增大。
集群、分布式、微服務的異同及聯絡
1.分布式與微服務的關係
分布式和微服務的架構很相似,只是部署的方式不一樣而已。
生產環境下的微服務肯定是分布式部署的,分布式部署的應用不一定是微服務架構的。比如集群部署,它是把相同應用複製到不同伺服器上,但是邏輯功能上還是單體應用。
2.集群模式是不同伺服器部署同一套服務對外訪問,實現服務的負載均衡。區別集群的方式是根據部署多台伺服器業務是否相同,分布式中的每乙個節點,都可以做集群。而集群並不一定就是分布式的。
而分布式,從窄意上理解也跟集群差不多。但是它的組織比較鬆散,不像集群有乙個組織性,一台伺服器垮了,其它的伺服器可以頂上來。分布式的每乙個節點都完成不同的業務,乙個節點垮了那這個業務就不可訪問了。
注:集群模式需要做好 session 共享,確保在不同伺服器切換的過程中不會因為沒有獲取到 session 而引起服務終止。
3.在開發中我們可以將分布式和集群分開嗎?
針對這個問題,我們可以根據分布式的介紹看出,其主要的功能是用來將我們的系統模組化,將系統進行解耦的,方便我們以後的維護和開發的。但是其並不能解決我們的併發問題,也無法保證我們的系統在伺服器宕機後的正常運轉。
而集群恰好彌補了分布式的缺陷,集群就是多個伺服器處理相同的業務。這在一方面可以解決或者說改善我們系統的併發問題,一方面可以解決我們伺服器如果出現一定數量的宕機後,系統仍然可以正常運轉。
好的設計應該是分布式和集群相結合,先分布式再集群。具體實現就是業務拆分成很多子業務,然後針對每個子業務進行集群部署。這樣每個子業務如果出了問題,整個系統完全不會受影響。
什麼是分布式 微服務
單體 傳統web專案 比較適合小專案,優點是 它的缺點也非常明顯,特別對於網際網路公司來說 通俗點說就是對於網際網路專案,屬於一直運營中有客戶一直在使用。單體應用的缺陷就暴露出來了,比如可能會因為乙個小問題,需要緊急上線,而導致整個 需要停止,這樣的情況對客戶 業務都是影響很大的,重新部署 備份對於...
集群 分布式 微服務的區別
開門見山,見標題。集群是個物理形態,分布式是個工作方式,微服務是一種架構風格。集群模式是不同伺服器部署同一套服務對外訪問,實現服務的負載均衡。區別集群的方式是根據部署多台伺服器業務是否相同。將乙個大的系統劃分為多個業務模組,業務模組分別部署到不同的機器上,各個業務模組之間通過介面進行資料互動。區別分...
php分布式微服務開發 分布式微服務架構
隨著業務的不斷發展,使用者體量的快速擴張.從單體 垂直架構轉移到分布式 微服務架構是自然而然的選擇.分布式理論是分布式系統的基礎,在任何情況下分布式系統都要滿足網路分割槽容錯性,因此分布式系統都是在可用性和一致性方面做平衡.cap理論指的是在乙個分布式系統中,一致性 可用性 分割槽容錯性 在任何情況...