溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

你真的了解分布式系統(tǒng)到底是什么嗎?

發(fā)布時(shí)間:2020-06-23 15:07:44 來源:網(wǎng)絡(luò) 閱讀:1066 作者:Java月亮呀 欄目:編程語言

你真的了解分布式系統(tǒng)到底是什么嗎?

前言

隨著大型網(wǎng)站的各種高并發(fā)訪問、海量數(shù)據(jù)處理等場(chǎng)景越來越多,如何實(shí)現(xiàn)網(wǎng)站的高可用、易伸縮、可擴(kuò)展、安全等目標(biāo)就顯得越來越重要。為了解決這樣一系列問題,大型網(wǎng)站的架構(gòu)也在不斷發(fā)展。提高大型網(wǎng)站的高可用架構(gòu),不得不提的就是分布式。本文主要簡單介紹了分布式系統(tǒng)的概念、分布式系統(tǒng)的特點(diǎn)、常用的分布式方案以及分布式和集群的區(qū)別等。

一、集中式系統(tǒng)

在學(xué)習(xí)分布式之前,先了解一下與之相對(duì)應(yīng)的集中式系統(tǒng)是什么樣的。

集中式系統(tǒng)用一句話概括就是:一個(gè)主機(jī)帶多個(gè)終端。終端沒有數(shù)據(jù)處理能力,僅負(fù)責(zé)數(shù)據(jù)的錄入和輸出。而運(yùn)算、存儲(chǔ)等全部在主機(jī)上進(jìn)行。

你真的了解分布式系統(tǒng)到底是什么嗎?

拿一個(gè)電子商城舉例,一個(gè)集中式系統(tǒng)的電子商城,通過一個(gè)應(yīng)用實(shí)現(xiàn),該應(yīng)用部署在一起主機(jī)上,對(duì)外提供服務(wù)。用戶的所有操作均通過這一臺(tái)機(jī)器的一個(gè)應(yīng)用實(shí)現(xiàn)。

集中式系統(tǒng)的最大的特點(diǎn)就是部署結(jié)構(gòu)非常簡單,底層一般采用從IBM、HP等廠商購買到的昂貴的大型主機(jī)。因此無需考慮如何對(duì)服務(wù)進(jìn)行多節(jié)點(diǎn)的部署,也就不用考慮各節(jié)點(diǎn)之間的分布式協(xié)作問題。

但是,由于采用單機(jī)部署。很可能帶來系統(tǒng)大而復(fù)雜、難于維護(hù)、發(fā)生單點(diǎn)故障(單個(gè)點(diǎn)發(fā)生故障的時(shí)候會(huì)波及到整個(gè)系統(tǒng)或者網(wǎng)絡(luò),從而導(dǎo)致整個(gè)系統(tǒng)或者網(wǎng)絡(luò)的癱瘓)、擴(kuò)展性差等問題。

二、分布式系統(tǒng)

在《分布式系統(tǒng)概念與設(shè)計(jì)》一書中,對(duì)分布式系統(tǒng)做了如下定義:

分布式系統(tǒng)是一個(gè)硬件或軟件組件分布在不同的網(wǎng)絡(luò)計(jì)算機(jī)上,彼此之間僅僅通過消息傳遞進(jìn)行通信和協(xié)調(diào)的系統(tǒng)。

簡單來說就是一群獨(dú)立計(jì)算機(jī)集合共同對(duì)外提供服務(wù),但是對(duì)于系統(tǒng)的用戶來說,就像是一臺(tái)計(jì)算機(jī)在提供服務(wù)一樣。

分布式意味著可以采用更多的普通計(jì)算機(jī)(相對(duì)于昂貴的大型機(jī))組成分布式集群對(duì)外提供服務(wù)。計(jì)算機(jī)越多,CPU、內(nèi)存、存儲(chǔ)資源等也就越多,能夠處理的并發(fā)訪問量也就越大。

你真的了解分布式系統(tǒng)到底是什么嗎?

一個(gè)由分布式系統(tǒng)實(shí)現(xiàn)的電子商城,在功能上可能被拆分成多個(gè)應(yīng)用,分別提供不同的功能,組成一個(gè)分布式系統(tǒng)對(duì)外提供服務(wù)。
而系統(tǒng)內(nèi)的各個(gè)子系統(tǒng)之間通過網(wǎng)絡(luò)進(jìn)行通信和協(xié)調(diào),如異步消息或者RPC/HTTP請(qǐng)求調(diào)用等。

所以,分布式系統(tǒng)中的計(jì)算機(jī)在空間上幾乎沒有任何限制,這些計(jì)算機(jī)可能被放在不同的機(jī)柜上,也可能被部署在不同的機(jī)房中,還可能在不同的城市中,對(duì)于大型的網(wǎng)站甚至可能分布在不同的國家和地區(qū)。

你真的了解分布式系統(tǒng)到底是什么嗎?

但是,無論空間上如何分布,一個(gè)標(biāo)準(zhǔn)的分布式系統(tǒng)應(yīng)該具有以下幾個(gè)主要特征:

分布性

分布式系統(tǒng)中的多臺(tái)計(jì)算機(jī)之間在空間位置上可以隨意分布,系統(tǒng)中的多臺(tái)計(jì)算機(jī)之間沒有主、從之分,即沒有控制整個(gè)系統(tǒng)的主機(jī),也沒有受控的從機(jī)。

透明性

系統(tǒng)資源被所有計(jì)算機(jī)共享。每臺(tái)計(jì)算機(jī)的用戶不僅可以使用本機(jī)的資源,還可以使用本分布式系統(tǒng)中其他計(jì)算機(jī)的資源(包括CPU、文件、打印機(jī)等)。

同一性

系統(tǒng)中的若干臺(tái)計(jì)算機(jī)可以互相協(xié)作來完成一個(gè)共同的任務(wù),或者說一個(gè)程序可以分布在幾臺(tái)計(jì)算機(jī)上并行地運(yùn)行。

通信性

系統(tǒng)中任意兩臺(tái)計(jì)算機(jī)都可以通過通信來交換信息。

和集中式系統(tǒng)相比,分布式系統(tǒng)的性價(jià)比更高、處理能力更強(qiáng)、可靠性更高、也有很好的擴(kuò)展性。

但是,分布式在解決了網(wǎng)站的高并發(fā)問題的同時(shí)也帶來了一些其他問題。

首先,分布式的必要條件就是網(wǎng)絡(luò),這可能對(duì)性能甚至服務(wù)能力造成一定的影響。其次,一個(gè)集群中的服務(wù)器數(shù)量越多,服務(wù)器宕機(jī)的概率也就越大。另外,由于服務(wù)在集群中分布是部署,用戶的請(qǐng)求只會(huì)落到其中一臺(tái)機(jī)器上,所以,一旦處理不好就很容易產(chǎn)生數(shù)據(jù)一致性問題。

三、常用的分布式方案

分布式應(yīng)用和服務(wù)

將應(yīng)用和服務(wù)進(jìn)行分層和分割,然后將應(yīng)用和服務(wù)模塊進(jìn)行分布式部署。這樣做不僅可以提高并發(fā)訪問能力、減少數(shù)據(jù)庫連接和資源消耗,還能使不同應(yīng)用復(fù)用共同的服務(wù),使業(yè)務(wù)易于擴(kuò)展。

分布式靜態(tài)資源

對(duì)網(wǎng)站的靜態(tài)資源如JS、CSS、圖片等資源進(jìn)行分布式部署可以減輕應(yīng)用服務(wù)器的負(fù)載壓力,提高訪問速度。

分布式數(shù)據(jù)和存儲(chǔ)

大型網(wǎng)站常常需要處理海量數(shù)據(jù),單臺(tái)計(jì)算機(jī)往往無法提供足夠的內(nèi)存空間,可以對(duì)這些數(shù)據(jù)進(jìn)行分布式存儲(chǔ)。

分布式計(jì)算

隨著計(jì)算技術(shù)的發(fā)展,有些應(yīng)用需要非常巨大的計(jì)算能力才能完成,如果采用集中式計(jì)算,需要耗費(fèi)相當(dāng)長的時(shí)間來完成。分布式計(jì)算將該應(yīng)用分解成許多小的部分,分配給多臺(tái)計(jì)算機(jī)進(jìn)行處理。這樣可以節(jié)約整體計(jì)算時(shí)間,大大提高計(jì)算效率。

四、分布式與集群

很多人對(duì)分布式和集群的概念不是很清楚,容易混淆,這里簡單區(qū)分一下:

分布式(distributed)是指在多臺(tái)不同的服務(wù)器中部署不同的服務(wù)模塊,通過遠(yuǎn)程調(diào)用協(xié)同工作,對(duì)外提供服務(wù)。

集群(cluster)是指在多臺(tái)不同的服務(wù)器中部署相同應(yīng)用或服務(wù)模塊,構(gòu)成一個(gè)集群,通過負(fù)載均衡設(shè)備對(duì)外提供服務(wù)。

你真的了解分布式系統(tǒng)到底是什么嗎?

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI