分布式與集群是一回事兒麼?別讓這麼簡單的問題難住你!

2020-12-13 會點代碼的大叔

集群和分布式,實際上是兩個截然不同的概念。

集群

一個業務,部署在多臺伺服器上,這就是集群。這裡的一個業務,可以直接看作一個程序包。

舉個例子

公司開發了一個網上商城,類似於T寶,顧客可以在上面瀏覽商品、加入購物車、支付,完成整個的購物流程。

公司買了一臺伺服器,把這套程序部署上去,可以滿足一千個人同時在線購物。

當顧客越來越多,伺服器負載越來越高,商城的頁面也越來越卡,這時候公司再買幾臺伺服器,把商城的程序在每個伺服器上都部署一套,由負載均衡將請求轉發到各個伺服器上,這就是集群。

分布式

把一個業務,拆分成多個業務,然後部署到不同的伺服器上,這就是分布式。

再舉個例子

公司的網上商城,拆分成兩個系統:商品系統和支付系統,用戶在商品系統上完成瀏覽商品、加入購物車的動作,在支付系統上完成支付動作(當然用戶是無法感知到是在兩個系統上完成的操作),這就是分布式。

當然,還能繼續拆,例如拆出來:用戶系統、積分系統、物流系統等等等等。

分布式的好處

領導說,我們再做一個二手交易平臺,類似於X魚,這時候用戶系統、支付系統就可以復用了,做到了服務復用。

分布式 + 集群

分布式和集群通常是是結合在一起使用的;

比如商品系統部署兩臺,支付系統部署兩臺,前面各自掛負載均衡,這樣就算有單個伺服器 Down 掉,也不會對整個業務流程造成影響。

還有另外一種方案,可以不依賴於負載均衡,那就是採用 服務註冊/發現 的方式:

總之,集群部署很容易實現,當單機不能滿足業務需要時,可以採用集群部署,至於要不要做分布式,業務拆分到什麼粒度,就要結合公司的實際情況來決定了。

我將持續分享Java開發、架構設計、程式設計師職業發展等方面的見解,希望能得到你的關注;關注我後,可私信發送數字【1】,獲取學習資料。

相關焦點

  • 一文看懂集群、分布式與負載均衡的關係
    在「高並發,海量數據,分布式,NoSql,雲計算......」概念滿天飛的年代,相信不少朋友都聽說過甚至常與人提起「集群,負載均衡」等,但不是所有人都有機會真正接觸到這些技術,也不是所有人都真正理解了這些「聽起來很牛的」技術名詞。下面簡單解釋一下吧。
  • 集群和分布式,你知道其中的區別嗎?
    定義的區別計算機集群(英語:computer cluster)是一組鬆散或緊密連接在一起工作的計算機。由於這些計算機協同工作,在許多方面它們可以被視為單個系統。與網格計算機不同,計算機集群將每個節點設置為執行相同的任務,由軟體控制和調度。
  • 淺談集群、分布式、微服務的異同
    什麼是集群集群是指將多臺伺服器集中在一起,每臺伺服器都實現相同的業務,做相同的事情。但是每臺伺服器並不是缺一不可,存在的作用主要是緩解並發壓力和單點故障轉移問題。我們可以利用一些廉價的符合工業標準的硬體構造高擴展、高性能、低成本、高可用的系統。
  • 集群_負載均衡_分布式的區別是什麼
    集群通信的最大特點是話音通信採用PTT(Push To Talk),以一按即通的方式接續,被叫無需摘機即可接聽,且接續速度較快,並能支持群組呼叫等功能,它的運作方式以單工、半雙工為主,主要採用信道動態分配方式,並且用戶具有不同的優先等級和特殊功能
  • 3分鐘讀懂何為分布式、微服務和集群!
    TT貓把所有功能模塊分布部署在不同的地方,最終完成了用戶一系列的請求,這大概就是一個分布式系統吧。二、微服務博主認為微服務是一種架構,也是在分布式範疇之內的。舉個古代猥瑣而不淫蕩的例子吧,如果你生活在古代,年18,未婚,高富帥,急需解決個人生理問題。故,你來到了傳說中的風月場,咳咳,這個古代可是合法的。
  • 什麼是集群,分布式,一直都沒有弄明白
    什麼是集群,分布式,一直都沒有弄明白文|洪生鵬什麼是集群、分布式,對於這些概念,剛開始接觸的時候,不知有沒有人像我一樣,有種有點可望不可及的感覺,很難理解。下面我們簡單對這兩個概念闡述下:什麼是集群維基百科是這樣描述的計算機集群簡稱集群是一種計算機系統,它通過一組鬆散集成的計算機軟體和/或硬體連接起來高度緊密地協作完成計算工作。
  • 專家博客:探討分布式系統與集群的區別
    【IT168 技術】簡單說,分布式是以縮短單個任務的執行時間來提升效率的,而集群則是通過提高單位時間內執行的任務數來提升效率。  例如:如果一個任務由10個子任務組成,每個子任務單獨執行需1小時,則在一臺伺服器上執行改任務需10小時。
  • 如何利用Node.js 構建分布式集群
    本文為UCloud 公司高級工程師文天樂在深JS大會上發表的演講內容,主要介紹了UCloud內部如何利用Node.js 構建分布式集群,並分享了實踐過程中走過的坑,希望對正在使用Node.js或是即將使用Node.js的朋友有一些幫助。
  • 架構師成長之路:分布式系統綜述
    我這裡問下,當我們用 keepalived 做高可用集群的時候,我們是在搞分布式系統嗎?當我們並發不夠,搞了一堆機器做負載均衡,我們是在搞分布式系統嗎?當你心裡默默回答是,或者不清楚是不是的時候,你本身對分布式系統這個概念就已經糊塗了。
  • 如何理解分布式與集群,二者區別是什麼?
    分布式是指不同的業務分布在不同的地方,集群指的是將幾臺伺服器集中在一起,實現同一業務。中期:用戶訪問量提高,伺服器崩了,為了解決這個問題,購買伺服器,增加伺服器數量,然後每個伺服器中個各放了一份,使用nginx代理轉發。(這就是運用集群原理)後期:用戶訪問量不斷增加,響應速度變慢,伺服器又崩了,在不考慮增加伺服器帶寬、內存和CPU的情況下如何解決這個問題?
  • Infortrend CS分布式NAS集群優勢之高可用篇
    分布式作為大規模的集群存儲產品,要具備更加全面的防範措施,應對宕機、斷電等故障的發生。Infortrend EonStor CS分布式NAS集群存儲為確保前端業務持續不間斷使用,在硬體及軟體架構上嵌入多種技術理念來確保整個集群的高可用性。
  • 一文理解分布式架構
    在分布式數據系統中,用戶感覺不數據是分布的,即用戶不須知道關係是否分割,有無副本,數據存在於那個站點以及事物在哪個站點上執行。簡單來說:在一個分布式系統中,一組獨立的計算機展現給用戶的是一個統一的整體,就好像是一個系統似的。分布式系統作為一個整體對用戶提供服務,而整個系統的內部的協作對用戶來說是透明的,用戶就像是指使用一個mysql 一樣。
  • 光大銀行分布式實戰:國內最大繳費平臺的資料庫架構轉型
    (所以一個SQL進來,通過這層之後,解析完成就會告訴你你的數據在下面的某個MySQL集群上;同時分片完成之後,你也不需要關心數據是存在哪個MySQL庫、哪個實例裡,只要過了這層,就會自動地路由過去)。 EDB-bridge:資料庫複製和校驗組件,負責逃離資料庫異地災備的資料庫同步和同步數據校驗。
  • Redis的集群搭建,原來這麼簡單
    現在已經3月份了,正所謂金三銀四嘛,小夥伴們難道就沒有一些想法麼?昨天和一個朋友聊天,他給我說他剛拿到一個央企的offer,薪資差不多是平薪過去的,但是每個月有績效、補助,年終獎最低3個月起步。雖然整體來說薪資漲幅不大,但已經基本上達到大廠薪資的90%,還是可以的呀,重點人家是錢多活少還離家近,你說這氣人不氣人。他拿到這樣的offer證明肚子裡還是有點東西的哈。
  • 分布式集群環境下的Session共享解決方案
    而如果我們把web伺服器搭建成分布式的集群,然後利用LVS或Nginx做負載均衡,那麼來自同一用戶的Http請求將有可能被分發到兩個不同的web站點中去。那麼問題就來了,如何保證不同的web站點能夠共享同一份session數據呢?最簡單的想法就是把session數據保存到內存以外的一個統一的地方,例如Memcached/Redis等資料庫中。
  • 分布式系統設計理念為何這麼難學?
    無論是出去面試跟面試官吹水,還是在工作中和同事吹水,分布式系統永遠是你顯得高人一等的籌碼。分布式系統已經誕生了好幾十年,說起來比我們八零後程式設計師好要老成,隨著現代網際網路的崛起,對於系統在性能,可靠性上的要求大大提高。
  • 寶寶背後有青斑,咋回事兒?別擔心,原因在這裡,新手寶媽都看看
    (本文原創,版權歸作者所有)新生兒寶寶身上有青斑咋回事兒?是寶寶出問題了麼?我們都知道,當人被打了,或者摔傷了,身上就會有青一塊紫一塊的地方。但是一些寶媽卻發現,新生兒寶寶後背或者屁股上,也有青斑,這是怎麼回事兒,相信大家對於新生兒寶寶,照顧都是非常細心的,深怕寶寶受到一點傷害的,因此,不可能是摔傷,或者被打的。那麼新生兒寶寶背後的青斑,都是怎麼回事兒呢?可能有父母就會疑惑,是否是胎兒發育出了問題,為此擔心不已。你是否也是如此呢?
  • 什麼是分布式系統,這麼講不信你不會
    因為,分布式系統要解決的問題本身就是和單機系統一樣的,而由於分布式系統多節點、通過網絡通信的拓撲結構,會引入很多單機系統沒有的問題,為了解決這些問題又會引入更多的機制、協議,帶來更多的問題。在很多文章中,主要講分布式系統分為分布式計算(computation)與分布式存儲(storage)。
  • 深入解析:分布式系統的事務處理經典問題及模型
    Paxos 算法解決的問題是在一個可能發生上述異常的分布式系統中如何就某個值達成一致,保證不論發生以上任何異常,都不會破壞決議的一致性。一個典型的場景是,在一個分布式資料庫系統中,如果各節點的初始狀態一致,每個節點都執行相同的操作序列,那麼他們最後能得到一個一致的狀態。為保證每個節點執行相同的命令序列,需要在每一條指令上執行一個「一致性算法」以保證每個節點看到的指令一致。
  • Infinispan 9.3.0.Beta1 發布,分布式集群緩存系統
    它公開了一個簡單的數據結構(一個 Cache)來存儲對象。雖然可以在本地模式下運行 Infinspan,但其真正的價值在於分布式,在這種模式下,Infinispan 可以將集群緩存起來並公開大容量的堆內存。這可比簡單的複製強大的多,因為它會為每個結點分配固定數量的副本; 伺服器故障的一種恢復手段 ; 同時還提升了可伸縮性,這是由於存儲每個結點所需的工作量是與集群大小息息相關的。