平時(shí)開發(fā)或者面試中進(jìn)場聽到集群、分布式、負(fù)載均衡等系列的名詞,他們之間有什么聯(lián)系呢,本文就簡要的拋磚引玉一下。
集群
1.什么是集群
集群一般指的是服務(wù)器集群。集群其實(shí)就是一組相互獨(dú)立的計(jì)算機(jī),通過高速的網(wǎng)絡(luò)組成一個(gè)計(jì)算機(jī)系統(tǒng)。而很多服務(wù)器集中起來一起進(jìn)行同一種服務(wù),在客戶端看來就像是只有一個(gè)服務(wù)器,對用戶來說無感知。
2.集群的優(yōu)勢
1、高性能
例如有1千臺服務(wù)器同時(shí)計(jì)算運(yùn)行,其運(yùn)行效率肯定遠(yuǎn)大于單機(jī)的運(yùn)行效率。
2、高性價(jià)比
通過使用普通的服務(wù)器,使用集群組合其性能也能達(dá)到昂貴的小型機(jī)服務(wù)器的性能,但是價(jià)格缺很低,能夠節(jié)約大量資金可謂性價(jià)比滿滿,這也是后來國內(nèi)大型電商等逐步去除IOE的目的。
3、可伸縮性
例如平時(shí)業(yè)務(wù)最多需要10臺服務(wù)器,但是考慮到大促(比如618、雙11)這些促銷搶購節(jié)點(diǎn),需要瞬時(shí)的強(qiáng)大并發(fā)承載。這就可以提前預(yù)估服務(wù)器,在極端的情況下,可以實(shí)現(xiàn)動(dòng)態(tài)的服務(wù)器擴(kuò)容。
3.集群的分類
集群一般分為以下三種類型:
- 負(fù)載均衡集群(Load balancing clusters)簡稱LBC
- 高可用性集群(High-availability clusters)簡稱HAC
- 高性能計(jì)算集群(High-perfomance clusters)簡稱HPC
一般我們平時(shí)接觸最多的就是負(fù)載均衡集群,通過前端 Nginx 把請求分發(fā)給后端的不同后端web服務(wù)器,通過隨機(jī)算法或者權(quán)重算法等對流量的分?jǐn)偙WC系統(tǒng)的正常運(yùn)行。
高可用性集群和負(fù)載均衡有點(diǎn)類似,但是它一般都是按照主從模式來進(jìn)行的,比如一主一從,一主多從等模式。其側(cè)重點(diǎn)在于主節(jié)點(diǎn)有異常,從節(jié)點(diǎn)能夠快速切換保證系統(tǒng)的正常運(yùn)行。
高性能計(jì)算集群一般都是運(yùn)用在大量計(jì)算型的業(yè)務(wù)上,比如挖礦都是用的高性能集群來進(jìn)行密集的操作。
負(fù)載均衡
在服務(wù)器集群中,需要有一臺服務(wù)器充當(dāng)調(diào)度者的角色,用戶的所有請求都會(huì)首先由它接收,調(diào)度者再根據(jù)每臺服務(wù)器的負(fù)載情況將請求分配給其中的一臺后端服務(wù)器去處理。
在這個(gè)過程中,調(diào)度者如何合理分配任務(wù),保證所有后端服務(wù)器都將性能充分發(fā)揮,從而保持服務(wù)器集群的整體性能最優(yōu),這就是負(fù)載均衡。
分布式
分布式是指將不同的業(yè)務(wù)分布在不同的地方,而集群則是將幾臺服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù)。
分布式中的每一個(gè)節(jié)點(diǎn),都可以做集群,而集群并不一定就是分布式的。
分布式數(shù)據(jù)一致性
分布式系統(tǒng)中,解決了負(fù)載均衡的問題后,另外一個(gè)問題就是數(shù)據(jù)的一致性了。
在分布式集群中,很難保障數(shù)據(jù)的一致性,在以往的單節(jié)點(diǎn)服務(wù)中,通常使用鎖來實(shí)現(xiàn),當(dāng)發(fā)生并發(fā)沖突時(shí) 通過對鎖的持有獲得對象的操作權(quán),從而保證數(shù)據(jù)在同一時(shí)刻只允許被一個(gè)請求操作。
如果在集群中,若同樣采用鎖的機(jī)制,那么需要一臺節(jié)點(diǎn)用來管理分配鎖,當(dāng)其他節(jié)點(diǎn)進(jìn)行請求前,首先去獲取鎖從而獲得執(zhí)行權(quán)。不過這樣會(huì)產(chǎn)生單節(jié)點(diǎn)問題,即管理鎖的節(jié)點(diǎn)掛掉了,那么整個(gè)集群將無法工作。同時(shí),由于鎖的機(jī)制會(huì)使整個(gè)集群變成串行化單節(jié)點(diǎn)的形式,也失去了集群的意義。文章來源:http://www.zghlxwxcb.cn/news/detail-537247.html
所以,在集群中需要一種高容錯(cuò)的分布式一致性算法,因此提出了Paxos算法。在Paxos算法的基礎(chǔ)上后續(xù)有出現(xiàn)了:ZAB、Raflt等算法。Raft算法也是解決分布式系統(tǒng)一致性問題的,與 Paxos 實(shí)現(xiàn)的功能相同,相對來說更容易實(shí)現(xiàn)和理解。文章來源地址http://www.zghlxwxcb.cn/news/detail-537247.html
到了這里,關(guān)于淺析集群、分布式、負(fù)載均衡的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!