分布式和集群區(qū)別?什么是云計(jì)算平臺(tái)?分布式的應(yīng)用場(chǎng)景?

分布式是指將一個(gè)業(yè)務(wù)拆分不同的子業(yè)務(wù),分布在不同的機(jī)器上執(zhí)行,集群是指多臺(tái)服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù),可以視為一臺(tái)計(jì)算機(jī),一個(gè)云計(jì)算平臺(tái),就是通過一套軟件系統(tǒng)把分布式部署的資源集中調(diào)度使用。要應(yīng)對(duì)大并發(fā),要實(shí)現(xiàn)高可用,既需要分布式,也離不開集群。

創(chuàng)新互聯(lián)建站是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),微信小程序開發(fā),十年建站對(duì)成都食品包裝袋等多個(gè)方面,擁有豐富的網(wǎng)站維護(hù)經(jīng)驗(yàn)。

分布式和集群區(qū)別?

分布式

分布式:是指將一個(gè)業(yè)務(wù)拆分不同的子業(yè)務(wù),分布在不同的機(jī)器上執(zhí)行。

常用的分布式就是在負(fù)載均衡服務(wù)器后加一堆web服務(wù)器,然后在上面搞一個(gè)緩存服務(wù)器來保存臨時(shí)狀態(tài),后面共享一個(gè)數(shù)據(jù)庫(kù),

如圖所示:

這種環(huán)境下真正進(jìn)行分布式的只是web server而已,并且web server之間沒有任何聯(lián)系,所以結(jié)構(gòu)和實(shí)現(xiàn)都非常簡(jiǎn)單。

集群

集群:是指多臺(tái)服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù),可以視為一臺(tái)計(jì)算機(jī)。

多臺(tái)服務(wù)器組成的一組計(jì)算機(jī),作為一個(gè)整體存在,向用戶提供一組網(wǎng)絡(luò)資源,這些單個(gè)的服務(wù)器就是集群的節(jié)點(diǎn)。

兩個(gè)特點(diǎn)

可擴(kuò)展性:集群中的服務(wù)節(jié)點(diǎn),可以動(dòng)態(tài)的添加機(jī)器,從而增加集群的處理能力。

高可用性:如果集群某個(gè)節(jié)點(diǎn)發(fā)生故障,這臺(tái)節(jié)點(diǎn)上面運(yùn)行的服務(wù),可以被其他服務(wù)節(jié)點(diǎn)接管,從而增強(qiáng)集群的高可用性。

集群分類

常用的集群分類

1.高可用集群(High Availability Cluster)

高可用集群,普通兩節(jié)點(diǎn)雙機(jī)熱備,多節(jié)點(diǎn)HA集群。

2.負(fù)載均衡集群(Load Balance Cluster)

常用的有 Nginx 把請(qǐng)求分發(fā)給后端的不同web服務(wù)器,還有就是數(shù)據(jù)庫(kù)集群,負(fù)載均衡就是,為了保證服務(wù)器的高可用,高并發(fā)。

3.科學(xué)計(jì)算集群(High Performance Computing Cluster)

簡(jiǎn)稱HPC集群。這類集群致力于提供單個(gè)計(jì)算機(jī)所不能提供的強(qiáng)大的計(jì)算能力。

兩大能力

負(fù)載均衡:負(fù)載均衡能把任務(wù)比較均衡地分布到集群環(huán)境下的計(jì)算和網(wǎng)絡(luò)資源。

集群容錯(cuò):當(dāng)我們的系統(tǒng)中用到集群環(huán)境,因?yàn)楦鞣N原因在集群調(diào)用失敗時(shí),集群容錯(cuò)起到關(guān)鍵性的作用。

例如 Dubbo 的集群容錯(cuò):

Failover Cluster

失敗自動(dòng)切換,當(dāng)出現(xiàn)失敗,重試其它服務(wù)器,通常用于讀操作,但重試會(huì)帶來更長(zhǎng)延遲。

Failfast Cluster

快速失敗,只發(fā)起一次調(diào)用,失敗立即報(bào)錯(cuò),通常用于非冪等性的寫操作,比如新增記錄。

Failback Cluster

失敗自動(dòng)恢復(fù),后臺(tái)記錄失敗請(qǐng)求,定時(shí)重發(fā),通常用于消息通知操作。

Forking Cluster

并行調(diào)用多個(gè)服務(wù)器,只要一個(gè)成功即返回,通常用于實(shí)時(shí)性要求較高的讀操作,但需要浪費(fèi)更多服務(wù)資源。

簡(jiǎn)單總結(jié)

分布式,從狹義上理解,也與集群差不多,但是它的組織比較松散,不像集群,有一定組織性,一臺(tái)服務(wù)器宕了,其他的服務(wù)器可以頂上來。

分布式的每一個(gè)節(jié)點(diǎn),都完成不同的業(yè)務(wù),一個(gè)節(jié)點(diǎn)宕了,這個(gè)業(yè)務(wù)就不可訪問了。

1. 分布式是指將一個(gè)業(yè)務(wù)拆分不同的子業(yè)務(wù),分布在不同的機(jī)器上執(zhí)行。

2. 集群是指多臺(tái)服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù),可以視為一臺(tái)計(jì)算機(jī)。

分布式的每一個(gè)節(jié)點(diǎn),都可以用來做集群。而集群不一定就是分布式了。

什么是云計(jì)算平臺(tái)?

一個(gè)云計(jì)算平臺(tái),就是通過一套軟件系統(tǒng)把分布式部署的資源集中調(diào)度使用。要應(yīng)對(duì)大并發(fā),要實(shí)現(xiàn)高可用,既需要分布式,也離不開集群。

比如負(fù)載均衡,如果只是一臺(tái)服務(wù)器,這臺(tái)宕機(jī)了就完蛋了。

分布式的難點(diǎn),就是很多機(jī)器做存在依賴關(guān)系的不同活兒,這些活兒需要的資源、時(shí)間區(qū)別可能很大,某些機(jī)器還可能罷工,要怎么樣才能協(xié)調(diào)好,做到效率最高,消耗最少,不出錯(cuò)。

分布式的應(yīng)用場(chǎng)景?

平時(shí)接觸到的分布式系統(tǒng)有很多種,比如分布式文件系統(tǒng),分布式數(shù)據(jù)庫(kù),分布式WebService,分布式計(jì)算等等,面向的情景不同,但分布式的思路是否是一樣的呢?

1.簡(jiǎn)單的例子

假設(shè)我們有一臺(tái)服務(wù)器,它可以承擔(dān)1百萬/秒的請(qǐng)求,這個(gè)請(qǐng)求可以的是通過http訪問網(wǎng)頁,通過tcp下載文件,jdbc執(zhí)行sql,RPC調(diào)用接口…,現(xiàn)在我們有一條數(shù)據(jù)的請(qǐng)求是2百萬/秒,很顯然服務(wù)器hold不住了,會(huì)各種拒絕訪問,甚至崩潰,宕機(jī),怎么辦呢。

一臺(tái)機(jī)器解決不了的問題,那就兩臺(tái)。所以我們加一臺(tái)機(jī)器,每臺(tái)承擔(dān)1百萬。如果請(qǐng)求繼續(xù)增加呢,兩臺(tái)解決不了的問題,那就三臺(tái)唄。

這種方式我們稱之為 水平擴(kuò)展 。如何實(shí)現(xiàn)請(qǐng)求的平均分配便是 負(fù)載均衡了 。

另一個(gè)栗子,我們現(xiàn)在有兩個(gè)數(shù)據(jù)請(qǐng)求,數(shù)據(jù)1 90萬,數(shù)據(jù)2 80萬,上面那臺(tái)機(jī)器也hold不住,我們加一臺(tái)機(jī)器來負(fù)載均衡一下,每臺(tái)機(jī)器處理45萬數(shù)據(jù)1和40萬數(shù)據(jù)2,但是平分太麻煩,不如一臺(tái)處理數(shù)據(jù)1,一臺(tái)處理數(shù)據(jù)2,同樣能解決問題,這種方式我們稱之為 垂直拆分 。

水平擴(kuò)展和垂直拆分是分布式架構(gòu)的兩種思路,但并不是一個(gè)二選一的問題,更多的是兼并合用。下面介紹一個(gè)實(shí)際的場(chǎng)景。這也是許多互聯(lián)網(wǎng)的公司架構(gòu)思路。

2.實(shí)際的例子

我此時(shí)所在的公司的計(jì)算機(jī)系統(tǒng)很龐大,自然是一個(gè)整的分布式系統(tǒng),為了方便組織管理,公司將整個(gè)技術(shù)部按業(yè)務(wù)和平臺(tái)拆分為部門,訂單的,會(huì)員的,商家的等等,每個(gè)部門有自己的web服務(wù)器集群,數(shù)據(jù)庫(kù)服務(wù)器集群,通過同一個(gè)網(wǎng)站訪問的鏈接可能來自于不同的服務(wù)器和數(shù)據(jù)庫(kù),對(duì)網(wǎng)站及底層對(duì)數(shù)據(jù)庫(kù)的訪問被分配到了不同的服務(wù)器集群,這個(gè)便是典型的按業(yè)務(wù)做的 垂直拆分 ,每個(gè)部門的服務(wù)器在hold不住時(shí),會(huì)有彈性的擴(kuò)展,這便是 水平擴(kuò)展 。

在數(shù)據(jù)庫(kù)層,有些表非常大,數(shù)據(jù)量在億級(jí),如果只是純粹的水平的擴(kuò)展并不一定最好,如果對(duì)表進(jìn)行拆分,比如可以按用戶id進(jìn)行水平拆表,通過對(duì)id取模的方式,將用戶劃分到多張表中,同時(shí)這些表也可以處在不同的服務(wù)器。按業(yè)務(wù)的垂直拆庫(kù)和按用戶 水平拆表 是分布式數(shù)據(jù)庫(kù)中通用的解決方案。

比如 Mycat 開源分布式數(shù)據(jù)庫(kù)中間件www.mycat.io/

3.分布式一致性

分布式系統(tǒng)中,解決了負(fù)載均衡的問題后,另外一個(gè)問題就是數(shù)據(jù)的一致性了,這個(gè)就需要通過同步來保障。根據(jù)不同的場(chǎng)景和需求,同步的方式也是有選擇的。

在分布式文件系統(tǒng)中,比如商品頁面的圖片,如果進(jìn)行了修改,同步要求并不高,就算有數(shù)秒甚至數(shù)分鐘的延遲都是可以接受的,因?yàn)橐话悴粫?huì)產(chǎn)生損失性的影響,因此可以簡(jiǎn)單的通過文件修改的時(shí)間戳,隔一定時(shí)間掃描同步一次,可以犧牲一致性來提高效率。

但銀行中的分布式數(shù)據(jù)庫(kù)就不一樣了,一丁點(diǎn)不同步就是無法接受的,甚至可以通過加鎖等犧牲性能的方式來保障完全的一致。


在一致性算法中paxos算法是公認(rèn)的最好的算法,Chubby、ZooKeeper 中Paxos是它保證一致性的核心。這個(gè)算法比較難懂,我目前也沒弄懂,這里就不深入了。

網(wǎng)頁題目:分布式和集群區(qū)別?什么是云計(jì)算平臺(tái)?分布式的應(yīng)用場(chǎng)景?
分享URL:http://muchs.cn/article0/sgoio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、品牌網(wǎng)站建設(shè)、網(wǎng)站排名、虛擬主機(jī)、品牌網(wǎng)站設(shè)計(jì)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站