新聞中心
分布式與集群的區(qū)別是什么?
分布式架構(gòu)專題

成為架構(gòu)師,你想要的都在這里分布式架構(gòu)思維
大型互聯(lián)網(wǎng)架構(gòu)演進過程
架構(gòu)師應(yīng)具備的分布式知識
主流分布式架構(gòu)設(shè)計詳解
架構(gòu)開發(fā)基礎(chǔ)
多線程開發(fā)
高性能NIO框架
架構(gòu)核心服務(wù)層技術(shù)
服務(wù)的前世今生
「集群」的核心在「冗余」,通過冗余來提高系統(tǒng)的「可用性」,附帶影響了系統(tǒng)「容量」。
「分布式」的核心在「拆分」,通過拆分后的分工合作,提高系統(tǒng)的「響應(yīng)」和「容錯能力」,附帶影響了「可用性」。
區(qū)分「集群」和「分布式」的方法就是這一組系統(tǒng)/組件之間是「冗余」關(guān)系,還是「分工合作」關(guān)系。
假設(shè)題主是個有老婆的程序員!再假設(shè)題主的老婆開了一家小吃店!
因為是小本生意,初期收銀、服務(wù)、做菜、打掃都是你老婆一個人做。這就是「單機系統(tǒng)」。
但是你老婆也不是超人,偶爾會生個病,或者有其他事情,這個時候就沒法開店了,也就是說「系統(tǒng)停止對外提供服務(wù)了」!
為了減少關(guān)店的時間,你在老婆有事的時候,就去幫忙開店。這時你和你老婆就組成了「主備」。你老婆是「主」,你是「備」!
在BAT與同事們交流過,分布式已經(jīng)逐漸成為面試時必不可少的問題了。了解面試者對分布式的理解,一方面可以側(cè)面驗證其過去工作的規(guī)模,另一方面可以測試他對架構(gòu)設(shè)計方面的功底。
但是集群相對來說,在面試中提到的較少,因此很多人對分布式與集群的區(qū)別都不是很清楚。
接下來,我們將從N個方面來分析他們的區(qū)別。
集群傾向于物理概念,即多臺機器組成一個集群。這多臺機器是否有合作關(guān)系并不能保證,比如我們會說我們公司的一個規(guī)模為1000臺機器的物理集群部署在昌平,但是這1000臺機器可能是給公司內(nèi)不同的平臺提供服務(wù),但是從物理角度,由于都部署在一起,在同一個機房,就可以稱之為集群。
分布式傾向于邏輯概念,即多個節(jié)點或程序為了一個共同的目標,部署在一個或者多個物理機器上。舉個例子,一臺物理機上裝了一個Nginx,它連接的兩個Tomcat也在這臺物理機上,但是這個Nginx代表的服務(wù),就可以稱之為分布式。當然,為了安全性,穩(wěn)定性等原因,我們并不建議把分布式部署在一個物理節(jié)點上。
集群除了可以用來表示多個物理機器,還可以表示一種“冗余”的理念,即通過部署多個同樣功能的節(jié)點,來實現(xiàn)擴展性與可用性的提升。舉個例子,通過在不同節(jié)點上部署兩個同樣功能的server,來這樣就算其中一個節(jié)點宕機,也能保證服務(wù)的可用性。而擴展性,比如一個server的qps可用承擔(dān)到2000,但是隨著用戶群體的增加,qps需要達到3000,那么我們就可以通過增加一個Tomcat節(jié)點的方式來實現(xiàn)擴容。
分布式的分解與微服務(wù)的概念有點相近,即把一個系統(tǒng)的功能分布在不同節(jié)點上,每個節(jié)點都承擔(dān)了不同的責(zé)任,這樣分模塊部署最主要的優(yōu)勢是業(yè)務(wù)隔離,即個別功能的問題或者改進不會影響其他模塊,這樣就算個別模塊掛掉,其他模塊也能夠繼續(xù)運作。舉個例子,前些年春晚搶紅包的時候,曾經(jīng)由于瞬時間請求量太大導(dǎo)致把微信和支付寶給弄癱瘓了,但是大家都知道,癱瘓的只是紅包部分的功能,微信的信息功能并不受影響,這就是分布式的好處。
以上是我對分布式與集群的淺見,歡迎各位在下方留言評論。
簡單理解:集群是一個服務(wù)模塊,通過集群達到高可用,高性能,集群是對一個服務(wù)的橫向擴展,再簡單一點就是一個服務(wù)部署多個實例,外部訪問集群中服務(wù)的算法有主從,輪循,隨機,一致性hash,按比例,服務(wù)繁忙度等;分布式是指一個大型項目,通過拆分為多個服務(wù)單元,服務(wù)間通過RPC,http,mq等方式進行服務(wù)調(diào)用,那么這種服務(wù)拆分部署方式就是分布式,所謂分布式就是不集中,不統(tǒng)一
如何才能成為java架構(gòu)師?我為大家來分析一下?
一個非常好的問題。我是工作多年的Web應(yīng)用架構(gòu)師,來回答一下這個問題。歡迎關(guān)注我,了解更多IT專業(yè)知識。
要成為Java架構(gòu)師,應(yīng)該具備多方面的知識技能,特別重要的是,一定要有多個實際項目經(jīng)驗。
Java是當前的主流開發(fā)語言,應(yīng)用普遍,尤其是在電商系統(tǒng)、信息管理系統(tǒng)、企業(yè)應(yīng)用開發(fā)等方面,搭配Spring Boot開發(fā)框架,基本上是壟斷地位。
拿Web服務(wù)開發(fā)為例,為了滿足實際需求,Web項目功能和架構(gòu)都日趨復(fù)雜:多層架構(gòu),數(shù)據(jù)中臺,動靜分離,集群化部署,自動化運維,等等。
不同于一個Demo演示,用于商業(yè)、有價值的一個Web服務(wù)是功能全面的。
1)數(shù)據(jù)庫,免費開源的MySQL,收費的Oracle,其他主流數(shù)據(jù)庫
2)緩存系統(tǒng),Redis,MongoDB以及其它的NoSQL數(shù)據(jù)庫
3)消息隊列,常用的ActiveMQ,RocketMQ,RabbitMQ
到此,以上就是小編對于mongodb 緩存的問題就介紹到這了,希望這2點解答對大家有用。
本文題目:分布式與集群的區(qū)別是什么?(mongodb緩存時間怎么設(shè)置)
文章網(wǎng)址:http://m.fisionsoft.com.cn/article/cdppohs.html


咨詢
建站咨詢
