公眾號(hào)文章匯總
642
2022-05-30
轉(zhuǎn)載:http://blog.csdn.net/cutesource/article/details/5811914?????? https://www.cnblogs.com/aspirant/p/5697807.html
在IDF05(Intel Developer Forum 2005)上,Intel首席執(zhí)行官Craig Barrett就取消4GHz芯片計(jì)劃一事,半開玩笑當(dāng)眾單膝下跪致歉,給廣大軟件開發(fā)者一個(gè)明顯的信號(hào),單純依靠垂直提升硬件性能來提高系統(tǒng)性能的時(shí)代已結(jié)束,分布式開發(fā)的時(shí)代實(shí)際上早已悄悄地成為了時(shí)代的主流,吵得很熱的云計(jì)算實(shí)際上只是包裝在分布式之外的商業(yè)概念,很多開發(fā)者(包括我)都想加入研究云計(jì)算這個(gè)潮流,在google上通過“云計(jì)算”這個(gè)關(guān)鍵詞來查詢資料,查到的都是些概念性或商業(yè)性的宣傳資料,其實(shí)真正需要深入的還是那個(gè)早以被人熟知的概念------分布式。
分布式可繁也可以簡,最簡單的分布式就是大家最常用的,在負(fù)載均衡服務(wù)器后加一堆web服務(wù)器,然后在上面搞一個(gè)緩存服務(wù)器來保存臨時(shí)狀態(tài),后面共享一個(gè)數(shù)據(jù)庫,其實(shí)很多號(hào)稱分布式專家的人也就停留于此,大致結(jié)構(gòu)如下圖所示:
這種環(huán)境下真正進(jìn)行分布式的只是web server而已,并且web server之間沒有任何聯(lián)系,所以結(jié)構(gòu)和實(shí)現(xiàn)都非常簡單。
有些情況下,對(duì)分布式的需求就沒這么簡單,在每個(gè)環(huán)節(jié)上都有分布式的需求,比如Load Balance、DB、Cache和文件等等,并且當(dāng)分布式節(jié)點(diǎn)之間有關(guān)聯(lián)時(shí),還得考慮之間的通訊,另外,節(jié)點(diǎn)非常多的時(shí)候,得有監(jiān)控和管理來支撐。這樣看起來,分布式是一個(gè)非常龐大的體系,只不過你可以根據(jù)具體需求進(jìn)行適當(dāng)?shù)夭眉?。按照最完備的分布式體系來看,可以由以下模塊組成:
分布式任務(wù)處理服務(wù):負(fù)責(zé)具體的業(yè)務(wù)邏輯處理
分布式節(jié)點(diǎn)注冊(cè)和查詢:負(fù)責(zé)管理所有分布式節(jié)點(diǎn)的命名和物理信息的注冊(cè)與查詢,是節(jié)點(diǎn)之間聯(lián)系的橋梁
分布式DB:分布式結(jié)構(gòu)化數(shù)據(jù)存取
分布式Cache:分布式緩存數(shù)據(jù)(非持久化)存取
分布式文件:分布式文件存取
網(wǎng)絡(luò)通信:節(jié)點(diǎn)之間的網(wǎng)絡(luò)數(shù)據(jù)通信
監(jiān)控管理:搜集、監(jiān)控和診斷所有節(jié)點(diǎn)運(yùn)行狀態(tài)
分布式編程語言:用于分布式環(huán)境下的專有編程語言,比如Elang、Scala
分布式算法:為解決分布式環(huán)境下一些特有問題的算法,比如解決一致性問題的Paxos算法
因此,若要深入研究云計(jì)算和分布式,就得深入研究以上領(lǐng)域,而這些領(lǐng)域每一塊的水都很深,都需要很底層的知識(shí)和技術(shù)來支撐,所以說,對(duì)于想提升技術(shù)的開發(fā)者來說,以分布式來作為切入點(diǎn)是非常好的,可以以此為線索,探索計(jì)算機(jī)世界的各個(gè)角落。
集群是個(gè)物理形態(tài),分布式是個(gè)工作方式。
只要是一堆機(jī)器,就可以叫集群,他們是不是一起協(xié)作著干活,這個(gè)誰也不知道;一個(gè)程序或系統(tǒng),只要運(yùn)行在不同的機(jī)器上,就可以叫分布式,嗯,C/S架構(gòu)也可以叫分布式。
集群一般是物理集中、統(tǒng)一管理的,而分布式系統(tǒng)則不強(qiáng)調(diào)這一點(diǎn)。
所以,集群可能運(yùn)行著一個(gè)或多個(gè)分布式系統(tǒng),也可能根本沒有運(yùn)行分布式系統(tǒng);分布式系統(tǒng)可能運(yùn)行在一個(gè)集群上,也可能運(yùn)行在不屬于一個(gè)集群的多臺(tái)(2臺(tái)也算多臺(tái))機(jī)器上。
布式是相對(duì)中心化而來,強(qiáng)調(diào)的是任務(wù)在多個(gè)物理隔離的節(jié)點(diǎn)上進(jìn)行。中心化帶來的主要問題是可靠性,若中心節(jié)點(diǎn)宕機(jī)則整個(gè)系統(tǒng)不可用,分布式除了解決部分中心化問題,也傾向于分散負(fù)載,但分布式會(huì)帶來很多的其他問題,最主要的就是一致性。
集群就是邏輯上處理同一任務(wù)的機(jī)器集合,可以屬于同一機(jī)房,也可分屬不同的機(jī)房。分布式這個(gè)概念可以運(yùn)行在某個(gè)集群里面,某個(gè)集群也可作為分布式概念的一個(gè)節(jié)點(diǎn)。
一句話,就是:“分頭做事”與“一堆人”的區(qū)別
分布式是指將不同的業(yè)務(wù)分布在不同的地方。 而集群指的是將幾臺(tái)服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù)。
分布式中的每一個(gè)節(jié)點(diǎn),都可以做集群。 而集群并不一定就是分布式的。
舉例:就比如新浪網(wǎng),訪問的人多了,他可以做一個(gè)群集,前面放一個(gè)響應(yīng)服務(wù)器,后面幾臺(tái)服務(wù)器完成同一業(yè)務(wù),如果有業(yè)務(wù)訪問的時(shí)候,響應(yīng)服務(wù)器看哪臺(tái)服務(wù)器的負(fù)載不是很重,就將給哪一臺(tái)去完成。
而分布式,從窄意上理解,也跟集群差不多, 但是它的組織比較松散,不像集群,有一個(gè)組織性,一臺(tái)服務(wù)器垮了,其它的服務(wù)器可以頂上來。
分布式的每一個(gè)節(jié)點(diǎn),都完成不同的業(yè)務(wù),一個(gè)節(jié)點(diǎn)垮了,哪這個(gè)業(yè)務(wù)就不可訪問了。
2:簡單說,分布式是以縮短單個(gè)任務(wù)的執(zhí)行時(shí)間來提升效率的,而集群則是通過提高單位時(shí)間內(nèi)執(zhí)行的任務(wù)數(shù)來提升效率。
例如:
如果一個(gè)任務(wù)由10個(gè)子任務(wù)組成,每個(gè)子任務(wù)單獨(dú)執(zhí)行需1小時(shí),則在一臺(tái)服務(wù)器上執(zhí)行該任務(wù)需10小時(shí)。
采用分布式方案,提供10臺(tái)服務(wù)器,每臺(tái)服務(wù)器只負(fù)責(zé)處理一個(gè)子任務(wù),不考慮子任務(wù)間的依賴關(guān)系,執(zhí)行完這個(gè)任務(wù)只需一個(gè)小時(shí)。(這種工作模式的一個(gè)典型代表就是Hadoop的Map/Reduce分布式計(jì)算模型)
而采用集群方案,同樣提供10臺(tái)服務(wù)器,每臺(tái)服務(wù)器都能獨(dú)立處理這個(gè)任務(wù)。假設(shè)有10個(gè)任務(wù)同時(shí)到達(dá),10個(gè)服務(wù)器將同時(shí)工作,1小時(shí)后,10個(gè)任務(wù)同時(shí)完成,這樣,整身來看,還是1小時(shí)內(nèi)完成一個(gè)任務(wù)!
分布式:不同的業(yè)務(wù)模塊部署在不同的服務(wù)器上或者同一個(gè)業(yè)務(wù)模塊分拆多個(gè)子業(yè)務(wù),部署在不同的服務(wù)器上,解決高并發(fā)的問題
集群:同一個(gè)業(yè)務(wù)部署在多臺(tái)機(jī)器上,提高系統(tǒng)可用性
小飯店原來只有一個(gè)廚師,切菜洗菜備料炒菜全干。后來客人多了,廚房一個(gè)廚師忙不過來,又請(qǐng)了個(gè)廚師,兩個(gè)廚師都能炒一樣的菜,這兩個(gè)廚師的關(guān)系是集群。為了讓廚師專心炒菜,把菜做到極致,又請(qǐng)了個(gè)配菜師負(fù)責(zé)切菜,備菜,備料,廚師和配菜師的關(guān)系是分布式,一個(gè)配菜師也忙不過來了,又請(qǐng)了個(gè)配菜師,兩個(gè)配菜師關(guān)系是集群
分布式
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。