一文看懂集群、分布式與負載均衡的關係

2021-01-11 IT168

  在「高並發,海量數據,分布式,NoSql,雲計算......」概念滿天飛的年代,相信不少朋友都聽說過甚至常與人提起「集群,負載均衡」等,但不是所有人都有機會真正接觸到這些技術,也不是所有人都真正理解了這些「聽起來很牛的」技術名詞。下面簡單解釋一下吧。(從一個網站上面看到的,例子很有趣,分享給大家)

  集群(Cluster)

  所謂集群是指一組獨立的計算機系統構成的一個鬆耦合的多處理器系統,它們之間通過網絡實現進程間的通信。應用程式可以通過網絡共享內存進行消息傳送,實現分布式計算機。通俗一點來說,就是讓若干臺計算機聯合起來工作(服務),可以是並行的,也可以是做備份。

  負載均衡(Load Balance)

  網絡的負載均衡是一種動態均衡技術,常見的實現方式是通過一些工具實時地分析數據包,掌握網絡中的數據流量狀況,把任務合理均衡地分配出去。這種技術基於現有網絡結構,提供了一種擴展伺服器帶寬和增加伺服器吞吐量的廉價有效的方法,加強了網絡數據處理能力,提高了網絡的靈活性和可用性。日常生活中到處都能看到「負載均衡」,一個超市的收營員高峰期只能服務10位顧客,當做活動時有20位顧客需要服務的話可能就會排長隊,這樣購物體驗將會很差(就像客戶抱怨系統/網站訪問太慢)。最簡單的辦法就是再招個營業員,重新開通一個出口。負載均衡的核心就是「分攤壓力」。

  大規模集群,通常具備以下一些特點:

  (1)高可靠性(HA)

  利用集群管理軟體,當主伺服器故障時,備份伺服器能夠自動接管主伺服器的工作,並及時切換過去,以實現對用戶的不間斷服務。

  (2)高性能計算(HP)

  即充分利用集群中的每一臺計算機的資源,實現複雜運算的並行處理,通常用於科學計算領域,比如基因分析、化學分析等。

  (3)負載平衡(LB)

  即把負載壓力根據某種算法合理分配到集群中的每一臺計算機上,以減輕主伺服器的壓力,降低對主伺服器的硬體和軟體要求。

  當然,以上的這些特點,在某些適應場合下是需要同時具備的。常用的集群又分以下幾種:

  load balance cluster(負載均衡集群)

  一共有四兄弟開裁縫鋪,生意特別多,一個人做不下來,老是延誤工期,於是四個兄弟商量:老大接訂單, 三個兄弟來幹活。 客戶多起來之後,老大根據一定的原則(policy) 根據三兄弟手上的工作量來分派新任務。

  High availability cluster(高可用集群)

  兩兄弟開早餐鋪,生意不大,但是每天早上7點到9點之間客戶很多並且不能中斷。為了保證2個小時內這個早餐鋪能夠保證持續提供服務,兩兄弟商量幾個方法:

  方法一:平時老大做生意,老二這個時間段在家等候,一旦老大無法做生意了,老二就出來頂上,這個叫做 Active/Standby.(雙機熱備)

  方法二:平時老大做生意,老二這個時候就在旁邊幫工,一旦老大無法做生意,老二就馬上頂上,這個叫做Active/Passive.(雙機雙工)

  方法三:平時老大賣包子,老二也在旁邊賣豆漿,老大有問題,老二就又賣包子,又賣豆漿,老二不行了,老大就又賣包子,又賣豆漿.這個叫做Active/Active (dual Active)(雙機互備)

  (包子= application package, 互相照應叫做heartbeat, 頂替對方工作叫做 failover/takeover. 如果兩個兄弟突然都瞎了聾了,不知道現在對方到底是否正在幹活,都認為自己要頂對方的工作,這個叫做brain-split, 然後需要第三者,比如他們的老爹來解決問題,這個叫做tier-breaker, 或者讓他們兩個的媳婦過來拉走其中一個,這個叫做fency。)

  high computing clustering(高性能計算集群)

  10個兄弟一起做手工家具生意,一個客戶來找他們的老爹要求做一套非常複雜的仿古家具,一個人做也可以做,不過要做很久很久,為了1個星期就交出這一套家具,10個兄弟決定一起做。

  老爹把這套家具的不同部分分開交給兒子們作,然後每個兒子都在做木製家具的加工,最後拼在一起叫貨。

  老爹是scheduler任務調度器,兒子們是compute node. 他們做的工作叫做作業。

  (其實,還有一種,分布式存儲相關的集群,應用於超大規模網站,雲計算平臺等等。涉及點存儲方面的,這裡就不介紹了)

  嚴格來講,這些已經超過了一般開發人員的知識範疇了,想真正理解和掌握這些並不太容易,有時候需要真正的實踐而不是閉門造車。從運維人員和系統架構師的角度來看,不僅需要具備豐富的作業系統配置和管理的經驗,更要具備網絡協議、存儲等相關的知識(懂算法和底層的就更完美了)。從開發人員和軟體架構師的角度來看,需要考慮的重點又不同了。當然,遠遠不止我所提到的這些。現在的Web應用一般都比較依賴於基礎架構,而越來越脫離了」純軟體架構「的本質。集群不是萬能的,但有時候確實相當有用。由於項目和工作關係,我本人目前主要使用的是微軟的技術體系(當然,目前大都是基於windows平臺的)。有機會的話,我可以將自己在這方面的研究和實踐分享出來,更希望有興趣的朋友在一塊分享和交流。

  總結:

  分布式是指將不同的業務分布在不同的地方,集群指的是將幾臺伺服器集中在一起,實現同一業務。在現有網絡結構之上,負載均衡提供了一種廉價有效的方法擴展伺服器帶寬和增加吞吐量,加強網絡數據處理能力,提高網絡的靈活性和可用性。你對三者了解了麼?

相關焦點

  • 一文理解分布式架構
    1> 集群 與 分布式2> 負載均衡3> 分布式相關的高可用、容災等名詞解釋4> Mycat 中間件學習三、分布式架構的演進(1)初始階段架構 特徵:應用程式,資料庫,文件等所有資源都放在一臺伺服器上。
  • 一步一圖,帶你了解分布式架構的前世今生
    緩存分為本地緩存和遠程分布式緩存,本地緩存訪問速度更快但緩存數據量有限,同時存在與應用程式爭用內存的情況。特徵:資料庫中訪問較集中的一小部分數據存儲在緩存伺服器中,減少資料庫的訪問次數,降低資料庫的訪問壓力。(4)使用「應用伺服器」集群
  • 一文總結:分布式一致性技術是如何演進的?
    本文將從技術角度探討分布式一致性在工業界的應用,並從可理解性、可用性、效率和適用場景等幾個角度進行對比分析。文末福利:《分布式文件存儲系統技術及實現》技術公開課。分布式一致性分布式一致性,簡單的說就是在一個或多個進程提議了一個值後,使系統中所有進程對這個值達成一致。
  • 負載均衡技術與nat123負載均衡
    此文綜合分析了常用的負載均衡技術與nat123的負載均衡技術與故障轉移。一 .目前比較常用的負載均衡技術主要有:1. 負載均衡技術1.基於DNS的負載均衡:通過DNS服務中的隨機名字解析來實現負載均衡,在DNS伺服器中,可以為多個不同的地址配置同一個名字,而最終查詢這個名字的客戶機將在解析這個名字時得到其中一個地址因此,對於同一個名字,不同的客戶機會得到不同的地址,他們也就訪問不同地址上的Web伺服器,從而達到負載均衡的目的2.
  • 高可用負載均衡最佳實踐五:總體實現
    二、安裝作業系統及部署相關軟體  除了負載均衡器而外,其他兩層的底層作業系統可以是任何一種類unix環境。理論上,負載均衡器也可以是其他類型的unix,如freebsd,但這些系統都不能linux來得方便,因為lvs已經集成在各個linux的發行版裡了,不需要額外的處理,就可以實現lvs的轉發(主要內核模塊是ip_vs)。
  • 淺談Nginx負載均衡與F5的區別
    其實Nginx和F5這兩者均可用作網站負載均衡,那二者有什麼區別呢?筆者在此淺談下Nginx與F5的一些區別。反向代理負載均衡技術是把將來自internet上的連接請求以反向代理的方式動態地轉發給內部網絡上的多臺伺服器進行處理,從而達到負載均衡的目的。具體是怎麼運行的呢?
  • 縱觀網絡負載均衡發展歷史
    那麼網絡負載均衡技術也是隨著網絡發展而興起的。現在讓我們回首,看看它的發展歷史,同時,也是對網絡的發展有一個側面的認識。首先我們要弄清楚負載均衡從何而來,在什麼基礎上才被研發出來的。伺服器、FTP伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。負載均衡建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和伺服器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。需要說明的是:負載均衡設備不是基礎網絡設備,而是一種性能優化設備。對於網絡應用而言,並不是一開始就需要負載均衡,當網絡應用的訪問量不斷增長,單個處理單元無法滿足負載需求時
  • 這6種實現負載均衡技術的方式不容錯過
    這6種實現負載均衡技術的方式不容錯過 負載均衡(Load Balance)是集群技術(Cluster)的一種應用,可以將工作任務分攤到多個處理單元,從而提高並發處理能力,有利於提升中大型網站的性能。接下來小編就為大家介紹6種實現負載均衡技術的方式。
  • 支付寶高級Java現場面試37題:頁鎖+死鎖+集群+雪崩+負載等
    支付寶現場三面面試題目,文末有福利:阿里經典面試88題目答案  01 支付寶一面    1. 介紹一下自己。分布式系統原理:CAP,最終一致性,冪等操作等    4. 高並發情況下,我們系統是如何支撐大量的請求的    5. 集群如何同步會話狀態    6. 常用NOSQL,有做過比較?    7. 什麼情況會出現雪崩,以及如何應對?    8.
  • 解析F5伺服器負載均衡方案
    那麼,前面我們介紹了一下ebay平臺的伺服器負載均衡案例的一些要求和對方案的介紹。那麼現在,我們再來稍微回顧一下這個案例的具體內容。解決方案針對eBay資料庫伺服器負載均衡的需求特點,eBay考慮了三種主要解決方案。1)將資料庫垂直分割,劃分成多層資料庫處理,減輕原來單層資料庫處理數據而形成的瓶頸與可用性問題。但問題:這種方案很難部署,而且也沒有從根本上解決單點故障問題。2)採用OracleOPS/RAC機群解決方案。問題:要求給便資料庫編程代碼
  • F5總裁:解密負載均衡市場發展內幕
    編者按:十年前,很少有人知道網絡負載均衡,十年後,網絡負載均衡已經成為網絡應用的重要設備,特別是大型網絡應用的核心設備。如今,負載均衡設備市場甚至並駕與基礎路由、交換設備市場。負載均衡市場機會是如何被發現的,它是如何成長起來的?
  • 梭子魚負載均衡醫療行業應用方案
    一、客戶(項目)背景  某省中心醫院是該省最大的甲級醫院。該醫院的醫療管理軟體系統應用系統採用多層(C/S/S)架構,將應用伺服器與資料庫伺服器分離,其間通過千兆乙太網技術來構建主幹網。中心設置4臺中心伺服器,作為醫院的數據伺服器、應用伺服器。
  • 全面認識F5負載均衡
    F5負載均衡產品時我們常用的網絡負載控制的產品之一,那麼在此我們對它的功能和特點進行一個全面的介紹。通過對這個產品的認識,我們也能發現,在網絡管理中我們需要注意哪些方面的問題。那麼更多的內容,還是從下文中了解吧。
  • 分布式架構概述
    簡介作為一名架構師,我們要專業,要能看懂代碼,及時光著臂膀去機房,也能獨擋一面!及時同事搞不定問題,或者撂挑子,你也能給老大一個堅定的眼神:不怕,有我在!還能在會議室上滔滔不絕,如若無人,讓不懂技術的妹子看你時眼神迷離,就好想落霞與孤鶩齊飛!
  • 「技術專刊」WebApi部署多伺服器配置Nginx負載均衡
    很高興你能成為首期讀者,文末福利不要錯過哦!01PARTCoreWebApi教程本地演示環境Visual Studio2019 --- Vsersion:16.4.4 + NetCore3.1.202PARTNginx快速搭建配置負載均衡
  • 分布式與集群分久必合,淺析Filecoin集群架構優化方向
    集群(cluster)是指在多臺不同的伺服器中部署相同應用或服務模塊,簡單來說,集群指的是將幾臺伺服器集中在一起,實現同一業務。集群一般是指物理集中、統一管理的,從形態上來說,集群只是一個物理形態,但並不是一個工作方式,從工作方式來說,集群也分為單機結構集群、集群結構集群以及分布式結構集群。
  • 一文看懂載波頻率和帶寬的關係
    打開APP 一文看懂載波頻率和帶寬的關係 發表於 2018-03-13 10:52:49   載波頻率的概念   載波頻率是在信號傳輸的過程中,並不是將信號直接進行傳輸,而是將信號負載到一個固定頻率的波上,這個過程稱為加載,這樣的一個固定頻率。
  • 負載均衡算法概述
    我們查詢註冊中心獲得了某個服務的可用節點列表,我們需要從可用節點列表中選擇一個發起調用,這就是負載均衡的所用了。需要考慮兩個因素,個是要考慮調的均勻性,也就是要讓每個節點都接收到調,發揮所有節點的作,另個是要考慮調的性能,也就是哪個節點響應最快,優先調哪個節點。
  • 「官網」F5網絡負載均衡解決方案-上海初成
    這就要求作為競爭對手的 I S P 之間通力協作,這樣可能對企業一開始選擇二級 I S P 時有所限制。即使關係確立後,企業還得被迫等待,因為一旦出現問題,ISP 之間需要查清問題起因,分清責任歸屬 BGP 提供次等流量管理能力 路由選擇基於跳線的數量,這很大程度上限制了實施靈活性,降低了確保最佳鏈路選擇的路由操作的準確度。
  • Array Networks負載均衡解決方案案例
    【IT168 案例】應用優化及全局安全訪問解決方案提供商Array Networks為陝西地稅的稅務系統成功部署了伺服器負載均衡解決方案,使得陝西省地方稅務網絡不再因為用戶訪問量過大而無法及時處理大量並發訪問,實現了系統的網絡優化,大大提升了系統的運行效率和用戶應用體驗,同時還為系統的數據提供了高度的安全保障。