分布式系統(tǒng)是多個(gè)計(jì)算機(jī)系統(tǒng)作為一個(gè)單元有效地協(xié)同工作的計(jì)算機(jī)系統(tǒng)。分布式系統(tǒng)的示例包括用于服務(wù)網(wǎng)站和在線視頻的內(nèi)容分發(fā)網(wǎng)絡(luò)、由多個(gè)強(qiáng)大的數(shù)學(xué)處理器構(gòu)建的超級(jí)計(jì)算機(jī)以及許多在線系統(tǒng)中使用的分布式數(shù)據(jù)庫。分布式系統(tǒng)可以比單機(jī)系統(tǒng)更具彈性、更強(qiáng)大和更快,但它們也可能需要更多的維護(hù)和仔細(xì)考慮可能出錯(cuò)的組織和問題。
分布式系統(tǒng)的優(yōu)勢(shì)
使用分布式系統(tǒng)有許多潛在的優(yōu)勢(shì)。最容易理解的之一是冗余和彈性。如果一家公司從一組分布式服務(wù)器而不是單個(gè)服務(wù)器為其網(wǎng)站提供服務(wù),那么即使一臺(tái)服務(wù)器出現(xiàn)物理故障,它也可能能夠保持正常運(yùn)行。如果數(shù)據(jù)分布在多個(gè)服務(wù)器或磁盤之間,這在現(xiàn)代分布式系統(tǒng)中很常見,即使存儲(chǔ)設(shè)備停止工作,也可能不會(huì)丟失任何數(shù)據(jù)。
速度和內(nèi)容分發(fā)
分布式系統(tǒng)也可以比單機(jī)系統(tǒng)更快。分布式數(shù)據(jù)庫的優(yōu)點(diǎn)之一是可以將查詢路由到具有特定用戶信息的服務(wù)器,而不是所有請(qǐng)求都必須轉(zhuǎn)到可能過載的單個(gè)機(jī)器。
請(qǐng)求也可以路由到物理上關(guān)閉的服務(wù)器或通過快速網(wǎng)絡(luò)連接到任何想要數(shù)據(jù)的人,這可能意味著分配給處理網(wǎng)絡(luò)流量和瓶頸的時(shí)間和其他資源更少。這在用于在線媒體的內(nèi)容分發(fā)網(wǎng)絡(luò)中很常見。
縮放和并行
一旦分布式系統(tǒng)設(shè)置為在所涉及的服務(wù)器之間分發(fā)數(shù)據(jù),它們也可以輕松擴(kuò)展。如果它們?cè)O(shè)計(jì)得很好,它可以像添加一些新硬件并告訴網(wǎng)絡(luò)將其添加到分布式系統(tǒng)中一樣簡單。
分布式系統(tǒng)也可以設(shè)計(jì)用于并行性。這在天氣建模和科學(xué)計(jì)算等數(shù)學(xué)運(yùn)算中很常見,其中多個(gè)強(qiáng)大的處理器可以劃分復(fù)雜模擬的獨(dú)立部分,并比串聯(lián)運(yùn)行它們更快地獲得答案。
分布式計(jì)算挑戰(zhàn)
分布式計(jì)算的一大挑戰(zhàn)是程序員很難推理。在如何分發(fā)數(shù)據(jù)以確保在各種意外情況下滿足彈性要求方面可能存在挑戰(zhàn)。如果設(shè)備需要同步,可能會(huì)出現(xiàn)難以發(fā)現(xiàn)的錯(cuò)誤,這些錯(cuò)誤會(huì)導(dǎo)致它們相互等待傳輸數(shù)據(jù)或意外嘗試同時(shí)讀取或?qū)懭胪粭l數(shù)據(jù),從而導(dǎo)致錯(cuò)誤。
安全和隱私也可能成為分布式系統(tǒng)的一個(gè)問題,因?yàn)槿藗兊臄?shù)據(jù)存儲(chǔ)在多臺(tái)計(jì)算機(jī)上,有時(shí)存儲(chǔ)在多個(gè)物理位置。對(duì)于某些任務(wù),分布式系統(tǒng)也可能是過度殺傷力,使用了不必要的物理資源和工程時(shí)間。