概念
? ? ? ? 分布式是并聯(lián)工作,集群是串聯(lián)工作标沪。即分布式是通過(guò)降低單個(gè)任務(wù)執(zhí)行時(shí)間來(lái)調(diào)高系統(tǒng)的效率,而集群是通過(guò)提高單位時(shí)間執(zhí)行的任務(wù)數(shù)量來(lái)提升系統(tǒng)效率卦睹。
e.g.: 如果一個(gè)任務(wù)由五個(gè)子任務(wù)組成畦戒,每個(gè)子任務(wù)需要消耗一分鐘结序,那么此任務(wù)完成時(shí)間則需要五分鐘障斋。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分布式方案:將五個(gè)子任務(wù)分別部署在五個(gè)獨(dú)立服務(wù)器中徐鹤,不考慮任務(wù)之間的依賴關(guān)系配喳,那么執(zhí)行完這個(gè)任務(wù)總共消耗時(shí)長(zhǎng)則為一分鐘。(這種工作模式的一個(gè)典型代表就是Hadoop的Map/Reduce分布式計(jì)算模型)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 集群方案:同樣提供五臺(tái)服務(wù)器凳干,每臺(tái)服務(wù)器單獨(dú)處理一個(gè)任務(wù)晴裹,假設(shè)五個(gè)子任務(wù)同時(shí)到達(dá),五個(gè)服務(wù)器同時(shí)運(yùn)行救赐。則執(zhí)行整個(gè)任務(wù)時(shí)長(zhǎng)則也為一分鐘。
分布式(集群)與集群的聯(lián)系與區(qū)別
? ? ?分布式是指將不同的業(yè)務(wù)分布在不同的地方经磅。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?集群指的是將幾臺(tái)服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù)预厌。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?分布式中的每一個(gè)節(jié)點(diǎn)阿迈,都可以做集群 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 而集群并不一定就是分布式的。
? ? 舉例:就比如新浪網(wǎng)轧叽,訪問(wèn)的人多了苗沧,他可以做一個(gè)群集刊棕,前面放一個(gè)響應(yīng)服務(wù)器,后面幾臺(tái)服務(wù)器完成同一業(yè)務(wù)待逞,如果有業(yè)務(wù)訪問(wèn)的時(shí)候甥角,響應(yīng)服務(wù)器看哪臺(tái)服務(wù)器的負(fù)載不是很重识樱,就將給哪一臺(tái)去完成。
? ? 而分布式怜庸,從窄意上理解当犯,也跟集群差不多割疾, 但是它的組織比較松散,不像集群杈曲,有一個(gè)組織性,一臺(tái)服務(wù)器垮了担扑,其它的服務(wù)器可以頂上來(lái)恰响。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分布式的每一個(gè)節(jié)點(diǎn)涌献,都完成不同的業(yè)務(wù)胚宦,一個(gè)節(jié)點(diǎn)垮了燕垃,哪這個(gè)業(yè)務(wù)就不可訪問(wèn)了
集群兩大特性
? ? ? ?集群是一組協(xié)同工作的服務(wù)實(shí)體,用以提供比單一服務(wù)實(shí)體更具擴(kuò)展性與可用性的服務(wù)平臺(tái)卜壕。在客戶端看來(lái),一個(gè)集群就象是一個(gè)服務(wù)實(shí)體轴捎,但事實(shí)上集群由一組服務(wù)實(shí)體組成鹤盒。與單一服務(wù)實(shí)體相比較侦副,集群提供了以下兩個(gè)關(guān)鍵特性:
? ? ? · 可擴(kuò)展性--集群的性能不限于單一的服務(wù)實(shí)體,新的服務(wù)實(shí)體可以動(dòng)態(tài)地加入到集群秦驯,從而增強(qiáng)集群的性能。
? ? ? · 高可用性--集群通過(guò)服務(wù)實(shí)體冗余使客戶端免于輕易遇到out of service的警告。在集群中亲桥,同樣的服務(wù)可以由多個(gè)服務(wù)實(shí)體提供。如果一個(gè)服務(wù)實(shí)體失敗了两曼,另一個(gè)服務(wù)實(shí)體會(huì)接管失敗的服務(wù)實(shí)體玻驻。集群提供的從一個(gè)出 錯(cuò)的服務(wù)實(shí)體恢復(fù)到另一個(gè)服務(wù)實(shí)體的功能增強(qiáng)了應(yīng)用的可用性。
集群兩大能力
? ? ? 為了具有可擴(kuò)展性和高可用性特點(diǎn)璧瞬,集群的必須具備以下兩大能力:
? ? ? · 負(fù)載均衡--負(fù)載均衡能把任務(wù)比較均衡地分布到集群環(huán)境下的計(jì)算和網(wǎng)絡(luò)資源户辫。
? ? ? · 錯(cuò)誤恢復(fù)--由于某種原因嗤锉,執(zhí)行某個(gè)任務(wù)的資源出現(xiàn)故障渔欢,另一服務(wù)實(shí)體中執(zhí)行同一任務(wù)的資源接著完成任務(wù)瘟忱。這種由于一個(gè)實(shí)體中的資源不能工作奥额,另一個(gè)實(shí)體中的資源透明的繼續(xù)完成任務(wù)的過(guò)程叫錯(cuò)誤恢復(fù)访诱。
? ? ? ?負(fù)載均衡和錯(cuò)誤恢復(fù)都要求各服務(wù)實(shí)體中有執(zhí)行同一任務(wù)的資源存在,而且對(duì)于同一任務(wù)的各個(gè)資源來(lái)說(shuō)触菜,執(zhí)行任務(wù)所需的信息視圖(信息上下文)必須是一樣的。
集群兩大技術(shù)
? ? ? ? 實(shí)現(xiàn)集群務(wù)必要有以下兩大技術(shù):
? ? ? ? · 集群地址--集群由多個(gè)服務(wù)實(shí)體組成涡相,集群客戶端通過(guò)訪問(wèn)集群的集群地址獲取集群內(nèi)部各服務(wù)實(shí)體的功能。具有單一集群地址(也叫單一影像)是集群的一個(gè)基 本特征催蝗。維護(hù)集群地址的設(shè)置被稱(chēng)為負(fù)載均衡器。負(fù)載均衡器內(nèi)部負(fù)責(zé)管理各個(gè)服務(wù)實(shí)體的加入和退出丙号,外部負(fù)責(zé)集群地址向內(nèi)部服務(wù)實(shí)體地址的轉(zhuǎn)換。有的負(fù)載均 衡器實(shí)現(xiàn)真正的負(fù)載均衡算法槽袄,有的只支持任務(wù)的轉(zhuǎn)換烙无。只實(shí)現(xiàn)任務(wù)轉(zhuǎn)換的負(fù)載均衡器適用于支持ACTIVE-STANDBY的集群環(huán)境遍尺,在那里,集群中只有 一個(gè)服務(wù)實(shí)體工作乾戏,當(dāng)正在工作的服務(wù)實(shí)體發(fā)生故障時(shí)三热,負(fù)載均衡器把后來(lái)的任務(wù)轉(zhuǎn)向另外一個(gè)服務(wù)實(shí)體。
? ? ? ? ?· 內(nèi)部通信--為了能協(xié)同工作就漾、實(shí)現(xiàn)負(fù)載均衡和錯(cuò)誤恢復(fù),集群各實(shí)體間必須時(shí)常通信抑堡,比如負(fù)載均衡器對(duì)服務(wù)實(shí)體心跳測(cè)試信息、服務(wù)實(shí)體間任務(wù)執(zhí)行上下文信息的通信朗徊。
? ? ? ? 具有同一個(gè)集群地址使得客戶端能訪問(wèn)集群提供的計(jì)算服務(wù),一個(gè)集群地址下隱藏了各個(gè)服務(wù)實(shí)體的內(nèi)部地址爷恳,使得客戶要求的計(jì)算服務(wù)能在各個(gè)服務(wù)實(shí)體之間分布。內(nèi)部通信是集群能正常運(yùn)轉(zhuǎn)的基礎(chǔ)温亲,它使得集群具有均衡負(fù)載和錯(cuò)誤恢復(fù)的能力。