java 分布式與集群的區(qū)別和聯(lián)系

一.先說區(qū)別:
一句話:分布式是并聯(lián)工作的,集群是串聯(lián)工作的。
1.分布式是指將不同的業(yè)務(wù)分布在不同的地方。 而集群指的是將幾臺服務(wù)器集中在一起,實現(xiàn)同一業(yè)務(wù)。
分布式中的每一個節(jié)點,都可以做集群。 而集群并不一定就是分布式的。
舉例:就比如新浪網(wǎng),訪問的人多了,他可以做一個群集,前面放一個響應(yīng)服務(wù)器,后面幾臺服務(wù)器完成同一業(yè)務(wù),如果有業(yè)務(wù)訪問的時候,響應(yīng)服務(wù)器看哪臺服務(wù)器的負(fù)載不是很重,就將給哪一臺去完成。
而分布式,從窄意上理解,也跟集群差不多, 但是它的組織比較松散,不像集群,有一個組織性,一臺服務(wù)器垮了,其它的服務(wù)器可以頂上來。
分布式的每一個節(jié)點,都完成不同的業(yè)務(wù),一個節(jié)點垮了,哪這個業(yè)務(wù)就不可訪問了。
2.簡單說,分布式是以縮短單個任務(wù)的執(zhí)行時間來提升效率的,而集群則是通過提高單位時間內(nèi)執(zhí)行的任務(wù)數(shù)來提升效率。
簡單的例子說明一下:
如果一個任務(wù)由10個子任務(wù)組成,每個子任務(wù)單獨執(zhí)行需1小時,則在一臺服務(wù)器上執(zhí)行該任務(wù)需10小時。
采用分布式方案,提供10臺服務(wù)器,每臺服務(wù)器只負(fù)責(zé)處理一個子任務(wù),不考慮子任務(wù)間的依賴關(guān)系,執(zhí)行完這個任務(wù)只需一個小時。(這種工作模式的一個典型代表就是Hadoop的Map/Reduce分布式計算模型)
而采用集群方案,同樣提供10臺服務(wù)器,每臺服務(wù)器都能獨立處理這個任務(wù)。假設(shè)有10個任務(wù)同時到達,10個服務(wù)器將同時工作,1小時后,10個任務(wù)同時完成,這樣,整身來看,還是1小時內(nèi)完成一個任務(wù)!
二.集群概念
1. 兩大關(guān)鍵特性
集群是一組協(xié)同工作的服務(wù)實體,用以提供比單一服務(wù)實體更具擴展性與可用性的服務(wù)平臺。在客戶端看來,一個集群就象是一個服務(wù)實體,但事實上集群由一組服務(wù)實體組成。與單一服務(wù)實體相比較,集群提供了以下兩個關(guān)鍵特性:
a.可擴展性:集群的性能不限于單一的服務(wù)實體,新的服務(wù)實體可以動態(tài)地加入到集群,從而增強集群的性能。
b.高可用性:集群通過服務(wù)實體冗余使客戶端免于輕易遇到out of service的警告。在集群中,同樣的服務(wù)可以由多個服務(wù)實體提供。如果一個服務(wù)實體失敗了,另一個服務(wù)實體會接管失敗的服務(wù)實體。集群提供的從一個出 錯的服務(wù)實體恢復(fù)到另一個服務(wù)實體的功能增強了應(yīng)用的可用性。
2. 兩大能力
為了具有可擴展性和高可用性特點,集群的必須具備以下兩大能力:
a.負(fù)載均衡:負(fù)載均衡能把任務(wù)比較均衡地分布到集群環(huán)境下的計算和網(wǎng)絡(luò)資源。
b.錯誤恢復(fù):由于某種原因,執(zhí)行某個任務(wù)的資源出現(xiàn)故障,另一服務(wù)實體中執(zhí)行同一任務(wù)的資源接著完成任務(wù)。這種由于一個實體中的資源不能工作,另一個實體中的資源透明的繼續(xù)完成任務(wù)的過程叫錯誤恢復(fù)。
負(fù)載均衡和錯誤恢復(fù)都要求各服務(wù)實體中有執(zhí)行同一任務(wù)的資源存在,而且對于同一任務(wù)的各個資源來說,執(zhí)行任務(wù)所需的信息視圖(信息上下文)必須是一樣的。
3. 兩大技術(shù)
實現(xiàn)集群務(wù)必要有以下兩大技術(shù):
a.集群地址:集群由多個服務(wù)實體組成,集群客戶端通過訪問集群的集群地址獲取集群內(nèi)部各服務(wù)實體的功能。具有單一集群地址(也叫單一影像)是集群的一個基 本特征。維護集群地址的設(shè)置被稱為負(fù)載均衡器。負(fù)載均衡器內(nèi)部負(fù)責(zé)管理各個服務(wù)實體的加入和退出,外部負(fù)責(zé)集群地址向內(nèi)部服務(wù)實體地址的轉(zhuǎn)換。有的負(fù)載均 衡器實現(xiàn)真正的負(fù)載均衡算法,有的只支持任務(wù)的轉(zhuǎn)換。只實現(xiàn)任務(wù)轉(zhuǎn)換的負(fù)載均衡器適用于支持ACTIVE-STANDBY的集群環(huán)境,在那里,集群中只有 一個服務(wù)實體工作,當(dāng)正在工作的服務(wù)實體發(fā)生故障時,負(fù)載均衡器把后來的任務(wù)轉(zhuǎn)向另外一個服務(wù)實體。
b.內(nèi)部通信:為了能協(xié)同工作、實現(xiàn)負(fù)載均衡和錯誤恢復(fù),集群各實體間必須時常通信,比如負(fù)載均衡器對服務(wù)實體心跳測試信息、服務(wù)實體間任務(wù)執(zhí)行上下文信息的通信。
具有同一個集群地址使得客戶端能訪問集群提供的計算服務(wù),一個集群地址下隱藏了各個服務(wù)實體的內(nèi)部地址,使得客戶要求的計算服務(wù)能在各個服務(wù)實體之間分布。內(nèi)部通信是集群能正常運轉(zhuǎn)的基礎(chǔ),它使得集群具有均衡負(fù)載和錯誤恢復(fù)的能力。
三.集群分類
Linux集群主要分成三大類( 高可用集群, 負(fù)載均衡集群,科學(xué)計算集群)
1. 高可用集群(High Availability Cluster)
常見的就是2個節(jié)點做成的HA集群,有很多通俗的不科學(xué)的名稱,比如"雙機熱備", "雙機互備", "雙機".
高可用集群解決的是保障用戶的應(yīng)用程序持續(xù)對外提供服務(wù)的能力。 (請注意高可用集群既不是用來保護業(yè)務(wù)數(shù)據(jù)的,保護的是用戶的業(yè)務(wù)程序?qū)ν獠婚g斷提供服務(wù),把因軟件/硬件/人為造成的故障對業(yè)務(wù)的影響降低到最小程度)。
2. 負(fù)載均衡集群(Load Balance Cluster)
負(fù)載均衡系統(tǒng):集群中所有的節(jié)點都處于活動狀態(tài),它們分?jǐn)傁到y(tǒng)的工作負(fù)載。一般Web服務(wù)器集群、數(shù)據(jù)庫集群和應(yīng)用服務(wù)器集群都屬于這種類型。
負(fù)載均衡集群一般用于相應(yīng)網(wǎng)絡(luò)請求的網(wǎng)頁服務(wù)器,數(shù)據(jù)庫服務(wù)器。這種集群可以在接到請求時,檢查接受請求較少,不繁忙的服務(wù)器,并把請求轉(zhuǎn)到這些服務(wù)器上。從檢查其他服務(wù)器狀態(tài)這一點上看,負(fù)載均衡和容錯集群很接近,不同之處是數(shù)量上更多。
3. 科學(xué)計算集群(High Performance Computing Cluster)
高性能計算(High Perfermance Computing)集群,簡稱HPC集群。這類集群致力于提供單個計算機所不能提供的強大的計算能力。
四. 分布式(集群)與集群的聯(lián)系與區(qū)別
分布式是指將不同的業(yè)務(wù)分布在不同的地方。
而集群指的是將幾臺服務(wù)器集中在一起,實現(xiàn)同一業(yè)務(wù)。
分布式中的每一個節(jié)點,都可以做集群。
而集群并不一定就是分布式的。
舉例:就比如新浪網(wǎng),訪問的人多了,他可以做一個群集,前面放一個響應(yīng)服務(wù)器,后面幾臺服務(wù)器完成同一業(yè)務(wù),如果有業(yè)務(wù)訪問的時候,響應(yīng)服務(wù)器看哪臺服務(wù)器的負(fù)載不是很重,就將給哪一臺去完成。
而分布式,從窄意上理解,也跟集群差不多, 但是它的組織比較松散,不像集群,有一個組織性,一臺服務(wù)器垮了,其它的服務(wù)器可以頂上來。
分布式的每一個節(jié)點,都完成不同的業(yè)務(wù),一個節(jié)點垮了,哪這個業(yè)務(wù)就不可訪問了。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- java實現(xiàn)分布式項目搭建的方法
- java web在高并發(fā)和分布式下實現(xiàn)訂單號生成唯一的解決方案
- java基于jedisLock—redis分布式鎖實現(xiàn)示例代碼
- Java分布式鎖的三種實現(xiàn)方案
- Java中JDBC事務(wù)與JTA分布式事務(wù)總結(jié)與區(qū)別
- 詳解Java如何實現(xiàn)基于Redis的分布式鎖
- Java訪問Hadoop分布式文件系統(tǒng)HDFS的配置說明
- 實例講解分布式緩存軟件Memcached的Java客戶端使用
- redis中使用java腳本實現(xiàn)分布式鎖
- Java同學(xué)找工作最懵圈的問題:到底啥是分布式系統(tǒng)開發(fā)經(jīng)驗?(推薦)
相關(guān)文章
Win10 Java jdk14.0.2安裝及環(huán)境變量配置詳細(xì)教程
這篇文章主要介紹了Win10 Java jdk14.0.2安裝及環(huán)境變量配置,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
Java如何使用JSR303校驗數(shù)據(jù)與自定義校驗注解
這篇文章主要介紹了Java如何使用JSR303校驗數(shù)據(jù)與自定義校驗注解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
springboot layui hutool Excel導(dǎo)入的實現(xiàn)
本文主要介紹了springboot layui hutool Excel導(dǎo)入的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說明
這篇文章主要介紹了DecimalFormat數(shù)字格式化 0和# 的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10

