-
1 # 尚學堂大資料學院
-
2 # Geek視界
根據我所知道的回答一下這個問題。
負載均衡和分散式還真的不是一個意思。下面就分別說一說。
分散式計算分散式計算是相對於集中式計算而言的,將應用分解成許多小的問題,分配給多臺計算機進行處理,各個計算機之間透過高速網路交換資料,實現程序間的通訊。可以大大提高計算效率。
一個分散式系統需要若干個網路互連的計算機,這些計算機相互協作完成一個共同的目標。
具體的過程就是:將需要大量計算的專案資料分割成小塊,多臺計算機分別計算,再將運算的結果統一後得到資料結論。
如下圖所示:
負載均衡負載均衡主要建立在現有的網路結構基礎之上,透過一種廉價的方法增加網路裝置或者伺服器的頻寬,是為了提高資料的吞吐量,提高冗餘度、存在裝置或者系統的備份能力,增強網路的靈活性和可用性。
主要的負載均衡技術有二層負載均衡、三層負載均衡、高層負載均衡。
二層負載均衡
二層負載均衡是指網路裝置透過鏈路聚合的方式實現負載均衡,如下圖所示,多條物理的鏈路聚合成一條邏輯鏈路,根據特定的演算法和協議(LCAP協議)在兩條物理鏈路中實現負載均衡,同時具有備份鏈路的功能,一條中斷,並不影響網路資料的傳輸。
三層負載均衡
三層負載均衡最常用的技術就是VRRP(閘道器冗餘協議)透過將不同的閘道器放在不同的三層裝置中,實現負載均衡。還有透過RIP協議、OSPF協議實現等價路由協議的負載均衡。
如下圖所示就是一個OPSF協議實現的等價路由協議負載均衡,R1到R2存在6條物理線路,可以模擬成一條邏輯線路,根據特定的演算法實現資料包的負載均衡,斷了某一條線路不影響資料的傳輸。
高層負載均衡
高層負載均衡是指三層以上的負載均衡技術,比如透過軟體技術實現的負載均衡、http服務的負載均衡、DNS實現的負載均衡等。
其中DNS負載均衡是透過DNS伺服器實現的,將使用者的請求均勻的分不到web伺服器上,可以根據地域區分請求。
nginx負載均衡是透過反向代理伺服器實現的負載均衡,將請求均勻的分擔到應用伺服器上,有5種均衡策略可以選擇。
負載均衡和和分散式的區別資料處理方面
負載均衡提高資料的吞吐量
分佈提高資料的併發處理能力
實現機制方面
負載均衡是一種網路裝置或者伺服器的冗餘機制,存在備份鏈路
分散式為了完成同一個計算服務,將任務分擔到各個單元執行,各個單元的程序透過網路互傳資料。
-
3 # 會點程式碼的大叔叢集
同一個業務系統,部署在多臺伺服器上,這個就叫做叢集。
集群裡面,每一臺伺服器實現的功能沒有差別,程式碼都是一樣的。
比如我有一個系統A,提供一個很簡單的介面,根據員工編號查詢員工姓名和他的考勤記錄。
當有一個系統呼叫這個介面的時候,我部署一臺伺服器就夠用了。
當有一百個系統呼叫這個介面的時候,我就部署十臺伺服器,前面掛一個負載均衡。
這就是叢集部署,當一臺伺服器掛了以後,不影響功能使用。
我接觸過的負載均衡軟體有Nginx、LB、HAProxy,也有硬體諸如F5。
分散式一個業務被拆成多個子業務,部署在多臺伺服器上,這個就叫做分散式。
分散式裡面,每一臺伺服器實現的功能是有差別的,程式碼也是不一樣的,分散式每臺伺服器功能加起來,才是完整的業務。
還是這個業務場景,我有一個系統A,提供一個很簡單的介面,根據員工編號查詢員工姓名和他的考勤記錄。
我拆開兩個系統:人員管理系統B和考勤系統C,分別部署在兩臺伺服器上。
這個就是分散式。
好處是什麼呢?如果有系統D也需要使用人員資訊,傳統的方式系統A和D都要有人員資訊管理功能,意味著兩個系統各自維護人員資訊,那新入職一個員工,可能要在系統A和D裡面都維護;如果是有EFGHI系統都需要人員資訊呢?
而分散式解決了這個問題,人員資訊單獨拎出來是一個系統,維護人員資訊,同時對外提供查詢服務。
分散式+叢集很多時候要結合起來一起用。
還是這個業務場景,我有一個系統A,提供一個很簡單的介面,根據員工編號查詢員工姓名和他的考勤記錄。
我拆開兩個系統:人員管理系統B和考勤系統C。
那麼系統B部署在十臺伺服器上,系統C部署在十臺伺服器上;前面分別掛負載均衡;這樣保證了每個子業務功能的高可用。
-
4 # 不要叫我阿杰
首先說什麼是分散式
按照功能點把一個系統進行拆分,拆分成獨立的功能,單獨為某一個節點新增伺服器,需要系統之間配合才能完成的邏輯,各系統之間通訊就需要Dubbo+Zookeeper了。
負載均衡
可以說是為了解決前臺訪問人員過多而導致伺服器崩潰的一種方法。有用Nginx做負載也有用Apache做負載均衡的。一般有的用Nginx代理Tomcat伺服器或者WebLogic伺服器來緩解伺服器壓力。
-
5 # 一個存在感小透明
並不是同一回事,目前常用實現負載均衡的伺服器是Nginx,接下來我就用Nginx來舉例,說明分散式和負載均衡的差別。
負載均衡你應該經常聽人說Nginx具有負載均衡的能力,但是這是什麼意思呢?舉個例子,某公司開發了一個服務,後端服務佈置在Tomcat上,這個Tomcat目前能夠承受的qps最多隻有5000,但是隨著公司規模擴大,使用者越來越多,這個伺服器逐漸無法承擔瞬時間大量的請求了,時不時的就宕機。總是重啟服務也不行,因為停服期間,對使用者使用體驗是有很糟糕的影響的。
那怎麼辦呢,此時就該引入Nginx,利用Nginx的負載均衡能力。
我們部署兩臺Tomcat,然後對外暴露給使用者的host和port指向這個Nginx,當用戶傳送請求的時候,Nginx會根據兩個Tomcat的健康情況決定把這個請求分給哪個(經過測試,兩臺伺服器健康度相同的時候,Nginx會均勻的將請求分給兩臺伺服器)。這樣,從使用者的角度,這個服務的qps的上限就達到了10000。
這就是負載均衡,可以看見,Nginx是將請求分給兩臺相同的機器,即這兩臺機器的功能和作用是相同的,可以理解為這兩臺機器組成了一個叢集。
分散式分散式與叢集的區別在於,分散式是對外提供一個整體的服務,但是內部其實是將不同的服務模組部署在不同的Tomcat上。從某種程度上說,與微服務有點像,但是又有差別。分散式也需要用到Nginx,用的是Nginx的反向代理功能。舉例,一個點外賣產品提供下單與查詢的能力(非常簡化,細節勿究),這兩個功能分佈部署在兩個Tomcat上,從域名上看分別是
http://xxx.yyy.cn/order/
...和http://xxx.yyy.cn/search
/...,但是其實http://xxx.yyy.cn/
其實繫結的是Nginx,請求傳送到Nginx之後,Nginx根據配置再決定是將請求發給負責查詢的Tomcat還是負責下單的Tomcat。從架構上看,兩臺不同功能的Tomcat,這叫分散式。 -
6 # 程式設計師小熊
一家餐廳,本來廚房只有一位師傅,由師傅負責洗菜、擇菜、切菜、炒菜,後來顧客增多了;就請了個幫廚負責洗菜、擇菜和切菜,之前的師傅只負責炒菜了;後來顧客更多了,就又請了一位師傅炒菜,這樣就有一個幫廚負責洗菜、擇菜還有切菜,有兩位師傅負責炒菜。以上就是分散式和叢集
-
7 # 獵戶人家AK
架構思維 一個新系統 ,在架構階段基於實際業務及使用場景 ,對系統進行模組拆分成多個小系統 (這時要考慮好小模組之間的通訊用什麼rpc框架 資料庫 安全等這些問題) 這個過程可以稱為分散式設計;多個小模組小系統有些是需要叢集設計有些不需要 ,對於負載量大例如訂單系統可以預見後續負載量會很大一臺機子肯定是hold不住的要部署多臺機子的 那就需要叢集,對於比如郵件服務可能一臺機子就夠了 那就不用考慮.... 沒完
-
8 # 老顧聊技術
負載均衡
舉例說明:一個人扛1000斤大米,對於普通人絕對被壓死,但10個人分攤一下,1個人扛100斤,那應該輕鬆一點;如果還扛不動,就要100個人分攤,那1個人扛10斤應該就沒問題了。
這個應該就明白了吧,就是多找人分攤,壓力分散開。
分散式
舉例說明:有個男人比較疼老婆,既能燒飯,洗衣服,帶孩子,還能賺錢。之前都是他一個人忙著,還能夠應付的來;但有一天公司提拔了他,但佔用了他很多的時間,那他時間就不夠用了,怎麼辦?那隻能請保姆(伺服器)安排好保姆去燒飯,洗衣服,帶孩子。但保姆又不願意都做。那就多請幾個唄。各個保姆的職責分配好,各自完成各自的任務。
這樣就多出來一個溝通問題,之前就這個男人做,他什麼都知道;現在多個保姆再做。這樣就增加了系統複雜度。
說到底就是職責劃分明確
-
9 # 程式設計汪與程式媛
不是一個概念,但都是叢集環境中的概念。簡單來說負載均衡是真對流量分發來說的,把流量透過隨機、hash、輪詢等方式分發到不同機器或叢集上;而分散式系統是針對單機系統而言,有一整套分散式方案和理論支撐,比如分散式系統的路由、分散式儲存、分散式鎖、分散式id生成器、分散式事務等等。所以負載均衡只能是分散式系統中很小的子集。
-
10 # 木子教程
在搭建網站時,如果單節點的 web服務效能和可靠性都無法達到要求;或者是在使用網路服務時,經常 擔心被人攻破,一不小心就會有開啟網路埠的情況,通常這個時候加入負載均衡就能有效解決服務問 題。
負載均衡是一種基礎的網路服務,其原理是透過執行在前面的負載均衡服務,按照指定的負載均衡算 法,將流量分配到後端服務叢集上,從而為系統提供並行擴充套件的能力。
客戶端負載均衡與服務端負載均衡
服務端負載均衡
先發送請求到負載均衡伺服器或者軟體,然後透過負載均衡演算法,在多個伺服器之間選擇一個進行訪 問;即在伺服器端再進行負載均衡演算法分配
客戶端負載均衡
客戶端會有一個伺服器地址列表,在傳送請求前透過負載均衡演算法選擇一個伺服器,然後進行訪問,這 是客戶端負載均衡;即在客戶端就進行負載均衡演算法分配
基於Ribbon實現負載均衡
負載均衡策略
Ribbon內建了多種負載均衡策略,內部負責複雜均衡的頂級介面為 com.netflix.loadbalancer.IRule ,實現方式如下
com.netflix.loadbalancer.RoundRobinRule :以輪詢的方式進行負載均衡。com.netflix.loadbalancer.RandomRule :隨機策略com.netflix.loadbalancer.RetryRule :重試策略。com.netflix.loadbalancer.WeightedResponseTimeRule :權重策略。會計算每個服務的權 重,越高的被呼叫的可能性越大。com.netflix.loadbalancer.BestAvailableRule :最佳策略。遍歷所有的服務例項,過濾掉 故障例項,並返回請求數最小的例項返回。com.netflix.loadbalancer.AvailabilityFilteringRule :可用過濾策略。過濾掉故障和請 求數超過閾值的服務例項,再從剩下的實力中輪詢呼叫。Ribbon中的關鍵元件
ServerList:可以響應客戶端的特定服務的伺服器列表。ServerListFilter:可以動態獲得的具有所需特徵的候選伺服器列表的過濾器。ServerListUpdater:用於執行動態伺服器列表更新。Rule:負載均衡策略,用於確定從伺服器列表返回哪個伺服器。Ping:客戶端用於快速檢查伺服器當時是否處於活動狀態。LoadBalancer:負載均衡器,負責負載均衡排程的管理。
回覆列表
這是兩種不同的網際網路技術,下面給大家詳細介紹一下。
分散式系統(分散式計算)分散式系統也稱為分散式計算,它是一組計算機,擔當一個大型計算機的角色。網際網路上有幾個分散式計算專案,它們透過共享數百萬臺不同計算機的處理能力來幫助解決複雜問題。通俗的講就是,使得執行大量任務並將其分散到大量個人計算機上成為可能,這種做法稱為分散式計算。下面是一個遊戲分散式系統
負載均衡什麼是負載平衡?
分散式負載平衡是一種聯網技術,它允許在各種伺服器上分配工作負載,以維護和維持網站的效能並避免過載。這是一種網路型別,即使由於高流量或任何其他原因而給網站帶來巨大壓力,也可以增強網站的生存能力。
負載平衡就是在許多不同的伺服器之間分配入站網路和流量。網站上出現了數百個網際網路世界中的使用者請求或客戶請求。一臺伺服器要保持並繼續以許多使用者需要的速度顯示文字,影片,高畫質質量的影象和其他資料變得非常困難。
許多不同的負載平衡技術充當指導者,以將流量定向到伺服器場中的特定伺服器。結束語這件事有助於防止一臺伺服器承擔過多的負載,並確保最佳化網路和應用程式的可用性以及網站上的響應能力。
負載均衡優點:1、最佳化伺服器利用率
2、負載平衡器透過建立顯式文字通訊來終止SSL通訊,以提高效能
3、確保任何單個伺服器不會負載不堪重負
4、負載平衡器可以使用API或圖形介面輕鬆管理配置。
1、網路負載平衡
2、內部負載平衡內部負載平衡
3、HTTP負載平衡
負載均衡器的型別
1、軟體負載平衡器
2、硬體負載平衡器
3、虛擬負載平衡器