java 分布式與集群的區(qū)別和聯(lián)系
一.先說(shuō)區(qū)別:
一句話:分布式是并聯(lián)工作的,集群是串聯(lián)工作的赛不。
1.分布式是指將不同的業(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)了。
2.簡(jiǎn)單說(shuō)窒升,分布式是以縮短單個(gè)任務(wù)的執(zhí)行時(shí)間來(lái)提升效率的缀遍,而集群則是通過(guò)提高單位時(shí)間內(nèi)執(zhí)行的任務(wù)數(shù)來(lái)提升效率。
簡(jiǎn)單的例子說(shuō)明一下:
如果一個(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í)完成立帖,這樣,整身來(lái)看悠砚,還是1小時(shí)內(nèi)完成一個(gè)任務(wù)晓勇!
二.集群概念
1. 兩大關(guān)鍵特性
集群是一組協(xié)同工作的服務(wù)實(shí)體,用以提供比單一服務(wù)實(shí)體更具擴(kuò)展性與可用性的服務(wù)平臺(tái)灌旧。在客戶端看來(lái)绑咱,一個(gè)集群就象是一個(gè)服務(wù)實(shí)體,但事實(shí)上集群由一組服務(wù)實(shí)體組成枢泰。與單一服務(wù)實(shí)體相比較描融,集群提供了以下兩個(gè)關(guān)鍵特性:
a.可擴(kuò)展性:集群的性能不限于單一的服務(wù)實(shí)體,新的服務(wù)實(shí)體可以動(dòng)態(tài)地加入到集群衡蚂,從而增強(qiáng)集群的性能窿克。
b.高可用性:集群通過(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)用的可用性只损。
2. 兩大能力
為了具有可擴(kuò)展性和高可用性特點(diǎn),集群的必須具備以下兩大能力:
a.負(fù)載均衡:負(fù)載均衡能把任務(wù)比較均衡地分布到集群環(huán)境下的計(jì)算和網(wǎng)絡(luò)資源补箍。
b.錯(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ù)所需的信息視圖(信息上下文)必須是一樣的蜂林。
3. 兩大技術(shù)
實(shí)現(xiàn)集群務(wù)必要有以下兩大技術(shù):
a.集群地址:集群由多個(gè)服務(wù)實(shí)體組成遥诉,集群客戶端通過(guò)訪問(wèn)集群的集群地址獲取集群內(nèi)部各服務(wù)實(shí)體的功能。具有單一集群地址(也叫單一影像)是集群的一個(gè)基 本特征噪叙。維護(hù)集群地址的設(shè)置被稱為負(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í)體粤咪。
b.內(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ù)的能力来吩。
三.集群分類
Linux集群主要分成三大類( 高可用集群, 負(fù)載均衡集群蔽莱,科學(xué)計(jì)算集群)
1. 高可用集群(High Availability Cluster)
常見的就是2個(gè)節(jié)點(diǎn)做成的HA集群弟疆,有很多通俗的不科學(xué)的名稱,比如"雙機(jī)熱備", "雙機(jī)互備", "雙機(jī)".
高可用集群解決的是保障用戶的應(yīng)用程序持續(xù)對(duì)外提供服務(wù)的能力盗冷。 (請(qǐng)注意高可用集群既不是用來(lái)保護(hù)業(yè)務(wù)數(shù)據(jù)的怠苔,保護(hù)的是用戶的業(yè)務(wù)程序?qū)ν獠婚g斷提供服務(wù),把因軟件/硬件/人為造成的故障對(duì)業(yè)務(wù)的影響降低到最小程度)仪糖。
2. 負(fù)載均衡集群(Load Balance Cluster)
負(fù)載均衡系統(tǒng):集群中所有的節(jié)點(diǎn)都處于活動(dòng)狀態(tài)柑司,它們分?jǐn)傁到y(tǒng)的工作負(fù)載。一般Web服務(wù)器集群锅劝、數(shù)據(jù)庫(kù)集群和應(yīng)用服務(wù)器集群都屬于這種類型攒驰。
負(fù)載均衡集群一般用于相應(yīng)網(wǎng)絡(luò)請(qǐng)求的網(wǎng)頁(yè)服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器故爵。這種集群可以在接到請(qǐng)求時(shí)玻粪,檢查接受請(qǐng)求較少,不繁忙的服務(wù)器诬垂,并把請(qǐng)求轉(zhuǎn)到這些服務(wù)器上劲室。從檢查其他服務(wù)器狀態(tài)這一點(diǎn)上看,負(fù)載均衡和容錯(cuò)集群很接近结窘,不同之處是數(shù)量上更多很洋。
3. 科學(xué)計(jì)算集群(High Performance Computing Cluster)
高性能計(jì)算(High Perfermance Computing)集群,簡(jiǎn)稱HPC集群隧枫。這類集群致力于提供單個(gè)計(jì)算機(jī)所不能提供的強(qiáng)大的計(jì)算能力喉磁。
四. 分布式(集群)與集群的聯(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)了。