1. 程式人生 > >叢集和分散式

叢集和分散式

叢集概念
1. 兩大關鍵特性
叢集是一組協同工作的服務實體,用以提供比單一服務實體更具擴充套件性與可用性的服務平臺。在客戶端看來,一個叢集就象是一個服務實體,但事實上叢集由一組服務實體組成。與單一服務實體相比較,叢集提供了以下兩個關鍵特性:

·  可擴充套件性--叢集的效能不限於單一的服務實體,新的服務實體可以動態地加入到叢集,從而增強叢集的效能。

·  高可用性--叢集通過服務實體冗餘使客戶端免於輕易遇到out of service的警告。在叢集中,同樣的服務可以由多個服務實體提供。如果一個服務實體失敗了,另一個服務實體會接管失敗的服務實體。叢集提供的從一個出錯的服務實體恢復到另一個服務實體的功能增強了應用的可用性。

2. 兩大能力
為了具有可擴充套件性和高可用性特點,叢集的必須具備以下兩大能力:

·  負載均衡--負載均衡能把任務比較均衡地分佈到叢集環境下的計算和網路資源。

·  錯誤恢復--由於某種原因,執行某個任務的資源出現故障,另一服務實體中執行同一任務的資源接著完成任務。這種由於一個實體中的資源不能工作,另一個實體中的資源透明的繼續完成任務的過程叫錯誤恢復。

負載均衡和錯誤恢復都要求各服務實體中有執行同一任務的資源存在,而且對於同一任務的各個資源來說,執行任務所需的資訊檢視(資訊上下文)必須是一樣的。

3. 兩大技術
實現叢集務必要有以下兩大技術:

·  叢集地址--叢集由多個服務實體組成,叢集客戶端通過訪問叢集的叢集地址獲取叢集內部各服務實體的功能。具有單一叢集地址(也叫單一影像)是叢集的一個基本特徵。維護叢集地址的設定被稱為負載均衡器。負載均衡器內部負責管理各個服務實體的加入和退出,外部負責叢集地址向內部服務實體地址的轉換。有的負載均衡器實現真正的負載均衡演算法,有的只支援任務的轉換。只實現任務轉換的負載均衡器適用於支援ACTIVE-STANDBY的叢集環境,在那裡,叢集中只有一個服務實體工作,當正在工作的服務實體發生故障時,負載均衡器把後來的任務轉向另外一個服務實體。

·  內部通訊--為了能協同工作、實現負載均衡和錯誤恢復,叢集各實體間必須時常通訊,比如負載均衡器對服務實體心跳測試資訊、服務實體間任務執行上下文資訊的通訊。

具有同一個叢集地址使得客戶端能訪問叢集提供的計算服務,一個叢集地址下隱藏了各個服務實體的內部地址,使得客戶要求的計算服務能在各個服務實體之間分佈。內部通訊是叢集能正常運轉的基礎,它使得叢集具有均衡負載和錯誤恢復的能力。

叢集分類
Linux叢集主要分成三大類( 高可用叢集, 負載均衡叢集,科學計算叢集)

高可用叢集( High Availability Cluster)
負載均衡叢集(Load Balance Cluster)
科學計算叢集(High Performance Computing Cluster)
================================================

具體包括:

Linux High Availability 高可用叢集                                      
(普通兩節點雙機熱備,多節點HA叢集,RAC, shared, share-nothing叢集等)

Linux Load Balance 負載均衡叢集                                     
 (LVS等....)

Linux High Performance Computing 高效能科學計算叢集    
 (Beowulf 類叢集....)

分散式儲存                                                                        
其他類linux叢集             
(如Openmosix, rendering farm 等..)

詳細介紹
1. 高可用叢集(High Availability Cluster)
常見的就是2個節點做成的HA叢集,有很多通俗的不科學的名稱,比如"雙機熱備", "雙機互備", "雙機".
高可用叢集解決的是保障使用者的應用程式持續對外提供服務的能力。 (請注意高可用叢集既不是用來保護業務資料的,保護的是使用者的業務程式對外不間斷提供服務,把因軟體/硬體/人為造成的故障對業務的影響降低到最小程度)。

2. 負載均衡叢集(Load Balance Cluster)

負載均衡系統:叢集中所有的節點都處於活動狀態,它們分攤系統的工作負載。一般Web伺服器叢集、資料庫叢集和應用伺服器叢集都屬於這種型別。

負載均衡叢集一般用於相應網路請求的網頁伺服器,資料庫伺服器。這種叢集可以在接到請求時,檢查接受請求較少,不繁忙的伺服器,並把請求轉到這些伺服器上。從檢查其他伺服器狀態這一點上看,負載均衡和容錯叢集很接近,不同之處是數量上更多。

3. 科學計算叢集(High Performance Computing Cluster)

高效能運算(High Perfermance Computing)叢集,簡稱HPC叢集。這類叢集致力於提供單個計算機所不能提供的強大的計算能力。

高效能運算分類  
 高吞吐計算(High-throughput Computing)
  有一類高效能運算,可以把它分成若干可以並行的子任務,而且各個子任務彼此間沒有什麼關聯。象在家搜尋外星人( [email protected] -- Search for Extraterrestrial Intelligence at Home )就是這一型別應用。這一專案是利用Internet上的閒置的計算資源來搜尋外星人。SETI專案的伺服器將一組資料和資料模式發給Internet上參加SETI的計算節點,計算節點在給定的資料上用給定的模式進行搜尋,然後將搜尋的結果發給伺服器。伺服器負責將從各個計算節點返回的資料彙集成完整的資料。因為這種型別應用的一個共同特徵是在海量資料上搜索某些模式,所以把這類計算稱為高吞吐計算。所謂的Internet計算都屬於這一類。按照Flynn的分類,高吞吐計算屬於SIMD(Single Instruction/Multiple Data)的範疇。

 分佈計算(Distributed Computing)
  另一類計算剛好和高吞吐計算相反,它們雖然可以給分成若干並行的子任務,但是子任務間聯絡很緊密,需要大量的資料交換。按照Flynn的分類,分散式的高效能運算屬於MIMD(Multiple Instruction/Multiple Data)的範疇。

4. 分散式(叢集)與叢集的聯絡與區別
分散式是指將不同的業務分佈在不同的地方。
而叢集指的是將幾臺伺服器集中在一起,實現同一業務。
分散式中的每一個節點,都可以做叢集。
而叢集並不一定就是分散式的。
舉例:就比如新浪網,訪問的人多了,他可以做一個群集,前面放一個響應伺服器,後面幾臺伺服器完成同一業務,如果有業務訪問的時候,響應伺服器看哪臺伺服器的負載不是很重,就將給哪一臺去完成。
而分散式,從窄意上理解,也跟叢集差不多, 但是它的組織比較鬆散,不像叢集,有一個組織性,一臺伺服器垮了,其它的伺服器可以頂上來。
分散式的每一個節點,都完成不同的業務,一個節點垮了,哪這個業務就不可訪問了。

相關推薦

叢集分散式相關概念的區別與聯絡

先說區別: 一句話:分散式是並聯工作的,叢集是串聯工作的。 1:分散式是指將不同的業務分佈在不同的地方。 而叢集指的是將幾臺伺服器集中在一起,實現同一業務。 分散式中的每一個節點,都可以做叢集。 而叢集並不一定就是分散式的。 舉例:就比如新浪網,訪問的人多了,他可以做一個群集,前面放一個響應伺服器,

結合實際專案理解叢集分散式的關係

1、關於叢集和分散式的關係 最近看了篇文章 到底什麼是叢集&分散式,文中收集了多名網友的回答,一個來自知呼的回答挺明瞭: 分散式:一個業務分拆多個子業務,部署在不同的伺服器上,(我的補充:)具有處理高併發的能力,但一個子業務系統宕機,該子業務

叢集分散式

叢集概念1. 兩大關鍵特性 叢集是一組協同工作的服務實體,用以提供比單一服務實體更具擴充套件性與可用性的服務平臺。在客戶端看來,一個叢集就象是一個服務實體,但事實上叢集由一組服務實體組成。與單一服務實體相比較,叢集提供了以下兩個關鍵特性: ·  可擴充套件性--叢集的效能不限

Quartz整合springMVC 的方案二(持久化任務、叢集分散式

Quartz是一個開放原始碼專案,專注於任務排程器,提供了極為廣泛的特性如持久化任務,叢集和分散式任務等。 Quartz核心是排程器,還採用多執行緒管理。 1.持久化任務:當應用程式停止執行時,所有排程資訊不被丟失,當你重新啟動時,排程資訊還存在,這就是持久化任務。

以yarn client分散式叢集方式執行spark-2.3.2-bin-hadoop2.6

一以分散式叢集執行 修改配置檔案/hadoop_opt/spark-2.3.2-bin-hadoop2.6/conf/spark-env.sh export HADOOP_CONF_DIR=/hadoop_opt/hadoop-2.6.1/etc/hadoop expo

HBase簡介分散式叢集的搭建

1,HBase是什麼? 1,概念 HBase是一個高可靠性、高效能、可伸縮、分散式、基於列儲存的非關係型(NoSQL)資料庫。 列式儲存和行式儲存? 非關係型資料庫與關係型資料庫? 2,與Google Bigtable的不同之處 服務 Goo

叢集管理分散式任務 Apache helix

這個題目寫的有點大,但是我一直想寫一個這方面文章,雖然我沒系統學過分散式系統理論,但是接觸了這麼多分散式系統之後,隱約感覺這些系統有很多共通之處。現在如果我讓你開發一個分散式系統,準確點叫分散式task系統,比如從kafka訂閱資料,然後寫到hdfs,歸檔。注意不光是能支援

【明天的地平線】專注Java相關技術:SpringBoot、Spr ingCloud、MyBatis、Docker、微服務、叢集分散式、 Linux、Jenkins、Netty、Angular 5 、Vue 2、微信小程式、程式碼生成器等的技術研究乾貨分

專注Java相關技術:SpringBoot、Spr ingCloud、MyBatis、Docker、微服務、叢集、分散式、 Linux、Jenkins、Netty、Angular 5 、Vue 2、微...

ELK 叢集 + Redis 叢集 + Nginx ,分散式的實時日誌(資料)蒐集分析的監控系統搭建,簡單上手使用

原文地址:https://segmentfault.com/a/1190000010975383簡述ELK實際上是三個工具的集合,ElasticSearch + Logstash + Kibana,這三個工具組合形成了一套實用、易用的監控架構,很多公司利用它來搭建視覺化的海量

springcloud-1.使用Eureka -robbon構建自動服務發現註冊叢集消費者

1.使用Eureka元件建立服務中心Server_1 @EnableEurekaServer //表示自己是一個server @SpringBootApplication public class EurekaserverApplication { public static void

apache負載均衡tomcat6叢集session複製

系統環境:Windows XP SP3 ,jdk1.5.0_05 軟體版本:apache_2.2.11-win32-x86-openssl-0.9.8i.msi apache-tomcat-6.0.16 apache-tomcat-6.0.18 備註:tomcat可以下載壓縮包

本地事務分散式事務

1 本地事務ACID 和 CAP中的CA區別     本地事務: A--》 原子性 一個事務中所有操作,要不全部完成,要不全部不完成,事務在執行過程中發生錯誤,會被回滾到事務開始前的狀態,就像這個事務沒有被執行過一樣。       &nb

區塊鏈的去中心化分散式到底有什麼區別?

        去中心化和分散式都是區塊鏈的特性,他們相互關聯,但又有所差異,本文和大家分享的就是它們的一些異同點,一起來看看吧。 1、去中心化   去中心化是網際網路發展過程中形成的社會關係形態和內容產生形態,是相對於“中心化”而言的新型網路內

redis 單機鎖 分散式

單機鎖 程式碼偷自:https://www.cnblogs.com/iforever/p/5796902.html <?php require "vendor/autoload.php"; $client = new Predis\Client([ 'scheme' =

負載均衡分散式(一)基本概念

寫在前面:本系列文章只講原理性和概念性相關的知識,目的在於對負載均衡和分散式技術有感性的認知,文中內容大多為我自己的理解,相關術語為自己杜撰,非權威學術術語、水平有限,如有錯誤 請諒解~  首先通俗的理解下負載均衡,廣義上,負載均衡就是把資料從一個機器分發發到多個機器進行處理~

Zookeeper分散式環境中的假死腦裂問題

最近和同事聊天無意間發現他們的系統也存在腦裂的問題。想想當初在我們的系統中為了解決腦裂花了非常大的功夫,現在和大家一起討論下腦裂,假死等等這些問題和解決的方法。 在一個大叢集中往往會有一個master存在,在長期執行過程中不可避免的會出現宕機等問題導致master不可用,在出現這樣的情況以後往往

SpringBoot通過JedisCluster連線Redis叢集分散式專案)

分散式專案 SpringBoot + Redis使用 現在開發流行微服務、分散式,基於這種情況需要使用redis不想每個專案都去寫重複的程式碼,所以我在工具包中封裝了redis這一塊的連線,但是問題是所有的專案都會依賴我的基礎包,卻不是所有的專案都要使用redis。所以我需要根據業務

大資料的簡介及Hadoop單機分散式安裝方法1

hadoop:開源軟體,可靠的、分散式、可伸縮的大資料軟體(是一個生態體系包括但不限於:hive、spark、MR、persto、kylin) 國家提出去IOE戰略: IBM           &nb

Apollo分散式配置

傳統配置檔案有什麼缺點 如果修改了配置檔案,需要重新打包釋出,而且每個環境變數配置檔案複雜。 分散式配置中心 將配置檔案註冊到配置中心平臺上,可以使用分散式配置中心實時更新配置檔案,統一管理,不需要重新打包釋出    後面定義的所有相關配置檔案資訊:除了 server port&

分散式

鎖的由來 : 多執行緒環境中,經常遇到多個執行緒訪問同一個 共享資源 ,這時候作為開發者必須考慮如何維護資料一致性,這就需要某種機制來保證只有滿足某個條件(獲取鎖成功)的執行緒才能訪問資源,而不滿足條件(獲取鎖失敗)的執行緒只能等待,在下一輪競爭中來獲取鎖才能訪問資源。 兩個知識點: 1.高階快取Cac