{eval=Array;=+count(Array);}
不是一個意思,下面按照我的理解說一下什么是分布式,什么是集群,如果有理解錯誤的地方,請大家留言指正。
同一個業(yè)務系統(tǒng),部署在多臺服務器上,這個就叫做集群。
集群里面,每一臺服務器實現(xiàn)的功能沒有差別,代碼都是一樣的。
比如我有一個系統(tǒng)A,提供一個很簡單的接口,根據(jù)員工編號查詢員工姓名和他的考勤記錄。
當有一個系統(tǒng)調(diào)用這個接口的時候,我部署一臺服務器就夠用了。
當有一百個系統(tǒng)調(diào)用這個接口的時候,我就部署十臺服務器,前面掛一個負載均衡。
這就是集群部署,當一臺服務器掛了以后,不影響功能使用。
我接觸過的負載均衡軟件有Nginx、LB、HAProxy,也有硬件諸如F5。
一個業(yè)務被拆成多個子業(yè)務,部署在多臺服務器上,這個就叫做分布式。
分布式里面,每一臺服務器實現(xiàn)的功能是有差別的,代碼也是不一樣的,分布式每臺服務器功能加起來,才是完整的業(yè)務。
還是這個業(yè)務場景,我有一個系統(tǒng)A,提供一個很簡單的接口,根據(jù)員工編號查詢員工姓名和他的考勤記錄。
我拆開兩個系統(tǒng):人員管理系統(tǒng)B和考勤系統(tǒng)C,分別部署在兩臺服務器上。
這個就是分布式。
好處是什么呢?如果有系統(tǒng)D也需要使用人員信息,傳統(tǒng)的方式系統(tǒng)A和D都要有人員信息管理功能,意味著兩個系統(tǒng)各自維護人員信息,那新入職一個員工,可能要在系統(tǒng)A和D里面都維護;如果是有EFGHI系統(tǒng)都需要人員信息呢?
而分布式解決了這個問題,人員信息多帶帶拎出來是一個系統(tǒng),維護人員信息,同時對外提供查詢服務。
很多時候要結(jié)合起來一起用。
還是這個業(yè)務場景,我有一個系統(tǒng)A,提供一個很簡單的接口,根據(jù)員工編號查詢員工姓名和他的考勤記錄。
我拆開兩個系統(tǒng):人員管理系統(tǒng)B和考勤系統(tǒng)C。
那么系統(tǒng)B部署在十臺服務器上,系統(tǒng)C部署在十臺服務器上;前面分別掛負載均衡;這樣保證了每個子業(yè)務功能的高可用。
希望我的回答,能夠幫助到你!
我會持續(xù)分享Java程序開發(fā)、架構(gòu)設計、職業(yè)發(fā)展等方面的知識和見解,希望能得到你的關注今日我們【會點代碼的大叔】,轉(zhuǎn)載請注明出處。
根據(jù)我所知道的回答一下這個問題。
負載均衡和分布式還真的不是一個意思。下面就分別說一說。
分布式計算是相對于集中式計算而言的,將應用分解成許多小的問題,分配給多臺計算機進行處理,各個計算機之間通過高速網(wǎng)絡交換數(shù)據(jù),實現(xiàn)進程間的通信??梢源蟠筇岣哂嬎阈省?/p>
一個分布式系統(tǒng)需要若干個網(wǎng)絡互連的計算機,這些計算機相互協(xié)作完成一個共同的目標。
具體的過程就是:將需要大量計算的項目數(shù)據(jù)分割成小塊,多臺計算機分別計算,再將運算的結(jié)果統(tǒng)一后得到數(shù)據(jù)結(jié)論。
如下圖所示:
負載均衡主要建立在現(xiàn)有的網(wǎng)絡結(jié)構(gòu)基礎之上,通過一種廉價的方法增加網(wǎng)絡設備或者服務器的帶寬,是為了提高數(shù)據(jù)的吞吐量,提高冗余度、存在設備或者系統(tǒng)的備份能力,增強網(wǎng)絡的靈活性和可用性。
主要的負載均衡技術(shù)有二層負載均衡、三層負載均衡、高層負載均衡。
二層負載均衡
二層負載均衡是指網(wǎng)絡設備通過鏈路聚合的方式實現(xiàn)負載均衡,如下圖所示,多條物理的鏈路聚合成一條邏輯鏈路,根據(jù)特定的算法和協(xié)議(LCAP協(xié)議)在兩條物理鏈路中實現(xiàn)負載均衡,同時具有備份鏈路的功能,一條中斷,并不影響網(wǎng)絡數(shù)據(jù)的傳輸。
三層負載均衡
三層負載均衡最常用的技術(shù)就是VRRP(網(wǎng)關冗余協(xié)議)通過將不同的網(wǎng)關放在不同的三層設備中,實現(xiàn)負載均衡。還有通過RIP協(xié)議、OSPF協(xié)議實現(xiàn)等價路由協(xié)議的負載均衡。
如下圖所示就是一個OPSF協(xié)議實現(xiàn)的等價路由協(xié)議負載均衡,R1到R2存在6條物理線路,可以模擬成一條邏輯線路,根據(jù)特定的算法實現(xiàn)數(shù)據(jù)包的負載均衡,斷了某一條線路不影響數(shù)據(jù)的傳輸。
高層負載均衡
高層負載均衡是指三層以上的負載均衡技術(shù),比如通過軟件技術(shù)實現(xiàn)的負載均衡、http服務的負載均衡、DNS實現(xiàn)的負載均衡等。
其中DNS負載均衡是通過DNS服務器實現(xiàn)的,將用戶的請求均勻的分不到web服務器上,可以根據(jù)地域區(qū)分請求。
nginx負載均衡是通過反向代理服務器實現(xiàn)的負載均衡,將請求均勻的分擔到應用服務器上,有5種均衡策略可以選擇。
數(shù)據(jù)處理方面
負載均衡提高數(shù)據(jù)的吞吐量
分布提高數(shù)據(jù)的并發(fā)處理能力
實現(xiàn)機制方面
負載均衡是一種網(wǎng)絡設備或者服務器的冗余機制,存在備份鏈路
分布式為了完成同一個計算服務,將任務分擔到各個單元執(zhí)行,各個單元的進程通過網(wǎng)絡互傳數(shù)據(jù)。
對于負載均衡和分布式,大家有什么看法呢,可以在評論區(qū)留言討論。
若需更多幫助,請私信關注。系誒些
在搭建網(wǎng)站時,如果單節(jié)點的 web服務性能和可靠性都無法達到要求;或者是在使用外網(wǎng)服務時,經(jīng)常 擔心被人攻破,一不小心就會有打開外網(wǎng)端口的情況,通常這個時候加入負載均衡就能有效解決服務問 題。
負載均衡是一種基礎的網(wǎng)絡服務,其原理是通過運行在前面的負載均衡服務,按照指定的負載均衡算 法,將流量分配到后端服務集群上,從而為系統(tǒng)提供并行擴展的能力。
負載均衡的應用場景包括流量包、轉(zhuǎn)發(fā)規(guī)則以及后端服務,由于該服務有內(nèi)外網(wǎng)個例、健康檢查等功 能,能夠有效提供系統(tǒng)的安全性和可用性。
客戶端負載均衡與服務端負載均衡
服務端負載均衡
先發(fā)送請求到負載均衡服務器或者軟件,然后通過負載均衡算法,在多個服務器之間選擇一個進行訪 問;即在服務器端再進行負載均衡算法分配
客戶端負載均衡
客戶端會有一個服務器地址列表,在發(fā)送請求前通過負載均衡算法選擇一個服務器,然后進行訪問,這 是客戶端負載均衡;即在客戶端就進行負載均衡算法分配
基于Ribbon實現(xiàn)負載均衡
負載均衡策略
Ribbon內(nèi)置了多種負載均衡策略,內(nèi)部負責復雜均衡的頂級接口為 com.netflix.loadbalancer.IRule ,實現(xiàn)方式如下
Ribbon中的關鍵組件
舉例說明:一個人扛1000斤大米,對于普通人絕對被壓死,但10個人分攤一下,1個人扛100斤,那應該輕松一點;如果還扛不動,就要100個人分攤,那1個人扛10斤應該就沒問題了。
這個應該就明白了吧,就是多找人分攤,壓力分散開。
舉例說明:有個男人比較疼老婆,既能燒飯,洗衣服,帶孩子,還能賺錢。之前都是他一個人忙著,還能夠應付的來;但有一天公司提拔了他,但占用了他很多的時間,那他時間就不夠用了,怎么辦?那只能請保姆(服務器)安排好保姆去燒飯,洗衣服,帶孩子。但保姆又不愿意都做。那就多請幾個唄。各個保姆的職責分配好,各自完成各自的任務。
這樣就多出來一個溝通問題,之前就這個男人做,他什么都知道;現(xiàn)在多個保姆再做。這樣就增加了系統(tǒng)復雜度。
說到底就是職責劃分明確
并不是同一回事,目前常用實現(xiàn)負載均衡的服務器是Nginx,接下來我就用Nginx來舉例,說明分布式和負載均衡的差別。
你應該經(jīng)常聽人說Nginx具有負載均衡的能力,但是這是什么意思呢?舉個例子,某公司開發(fā)了一個服務,后端服務布置在Tomcat上,這個Tomcat目前能夠承受的qps最多只有5000,但是隨著公司規(guī)模擴大,用戶越來越多,這個服務器逐漸無法承擔瞬時間大量的請求了,時不時的就宕機??偸侵貑⒎找膊恍?,因為停服期間,對用戶使用體驗是有很糟糕的影響的。
那怎么辦呢,此時就該引入Nginx,利用Nginx的負載均衡能力。
我們部署兩臺Tomcat,然后對外暴露給用戶的host和port指向這個Nginx,當用戶發(fā)送請求的時候,Nginx會根據(jù)兩個Tomcat的健康情況決定把這個請求分給哪個(經(jīng)過測試,兩臺服務器健康度相同的時候,Nginx會均勻的將請求分給兩臺服務器)。這樣,從用戶的角度,這個服務的qps的上限就達到了10000。
這就是負載均衡,可以看見,Nginx是將請求分給兩臺相同的機器,即這兩臺機器的功能和作用是相同的,可以理解為這兩臺機器組成了一個集群。
分布式與集群的區(qū)別在于,分布式是對外提供一個整體的服務,但是內(nèi)部其實是將不同的服務模塊部署在不同的Tomcat上。從某種程度上說,與微服務有點像,但是又有差別。分布式也需要用到Nginx,用的是Nginx的反向代理功能。舉例,一個點外賣產(chǎn)品提供下單與查詢的能力(非常簡化,細節(jié)勿究),這兩個功能分布部署在兩個Tomcat上,從域名上看分別是
http://xxx.yyy.cn/order/
...和http://xxx.yyy.cn/search
/...,但是其實http://xxx.yyy.cn/
其實綁定的是Nginx,請求發(fā)送到Nginx之后,Nginx根據(jù)配置再決定是將請求發(fā)給負責查詢的Tomcat還是負責下單的Tomcat。從架構(gòu)上看,兩臺不同功能的Tomcat,這叫分布式。以上是我的淺見,歡迎各位在下方評論區(qū)交流。
我是蘇蘇思量,來自BAT的Java開發(fā)工程師,每天分享科技類見聞,歡迎關注我,與我共同進步。
首先說什么是分布式
按照功能點把一個系統(tǒng)進行拆分,拆分成獨立的功能,多帶帶為某一個節(jié)點添加服務器,需要系統(tǒng)之間配合才能完成的邏輯,各系統(tǒng)之間通信就需要Dubbo+Zookeeper了。
負載均衡
可以說是為了解決前臺訪問人員過多而導致服務器崩潰的一種方法。有用Nginx做負載也有用Apache做負載均衡的。一般有的用Nginx代理Tomcat服務器或者WebLogic服務器來緩解服務器壓力。
一家餐廳,本來廚房只有一位師傅,由師傅負責洗菜、擇菜、切菜、炒菜,后來顧客增多了;就請了個幫廚負責洗菜、擇菜和切菜,之前的師傅只負責炒菜了;后來顧客更多了,就又請了一位師傅炒菜,這樣就有一個幫廚負責洗菜、擇菜還有切菜,有兩位師傅負責炒菜。以上就是分布式和集群[靈光一閃]
不一樣,當我們剛開始用云服務器搭建網(wǎng)站或者部署應用的時候,因為用戶流量較小,業(yè)務邏輯比較簡單,一個云服務器就可以滿足負載需求。但隨著互聯(lián)網(wǎng)流量越來越大,單臺服務器有時候并不足以支撐大量的訪問,可能會出現(xiàn)服務器崩潰的現(xiàn)象。
負載均衡的作用是把用戶訪問均衡分在后端服務器節(jié)點上面,減輕單一服務器的壓力,比如小鳥云負載均衡,支持支持四層(TCP/UDP)以及七層(HTTP/HTTPS)協(xié)議負載,基礎型是支持數(shù)千個并發(fā)連接數(shù),并提供雙機熱備冗余保障,適合于中小型網(wǎng)站或其他應用,提高網(wǎng)站的性能,包年可以享受相應折扣。
像小鳥云的負載均衡是搭配小鳥云服務器使用的,他家的云服務器性能還不錯,新購可以用85z券2W3V48,包年一樣有優(yōu)惠。
這是兩種不同的互聯(lián)網(wǎng)技術(shù),下面給大家詳細介紹一下。
分布式系統(tǒng)也稱為分布式計算,它是一組計算機,擔當一個大型計算機的角色?;ヂ?lián)網(wǎng)上有幾個分布式計算項目,它們通過共享數(shù)百萬臺不同計算機的處理能力來幫助解決復雜問題。通俗的講就是,使得執(zhí)行大量任務并將其分散到大量個人計算機上成為可能,這種做法稱為分布式計算。下面是一個游戲分布式系統(tǒng)
什么是負載平衡?
分布式負載平衡是一種聯(lián)網(wǎng)技術(shù),它允許在各種服務器上分配工作負載,以維護和維持網(wǎng)站的性能并避免過載。這是一種網(wǎng)絡類型,即使由于高流量或任何其他原因而給網(wǎng)站帶來巨大壓力,也可以增強網(wǎng)站的生存能力。
負載平衡就是在許多不同的服務器之間分配入站網(wǎng)絡和流量。網(wǎng)站上出現(xiàn)了數(shù)百個互聯(lián)網(wǎng)世界中的用戶請求或客戶請求。一臺服務器要保持并繼續(xù)以許多用戶需要的速度顯示文本,視頻,高清質(zhì)量的圖像和其他數(shù)據(jù)變得非常困難。
許多不同的負載平衡技術(shù)充當指導者,以將流量定向到服務器場中的特定服務器。結(jié)束語這件事有助于防止一臺服務器承擔過多的負載,并確保優(yōu)化網(wǎng)絡和應用程序的可用性以及網(wǎng)站上的響應能力。
1、優(yōu)化服務器利用率
2、負載平衡器通過建立顯式文本通信來終止SSL通信,以提高性能
3、確保任何單個服務器不會負載不堪重負
4、負載平衡器可以使用API或圖形界面輕松管理配置。
1、網(wǎng)絡負載平衡
2、內(nèi)部負載平衡內(nèi)部負載平衡
3、HTTP負載平衡
負載均衡器的類型
1、軟件負載平衡器
2、硬件負載平衡器
3、虛擬負載平衡器
最新版2020大數(shù)據(jù)全套視頻課件、源碼、軟件安裝包及海量電子書(500G)等你來拿哦,底部留言、評論或mail尚學堂大數(shù)據(jù)學院。
10
回答2
回答6
回答1
回答2
回答8
回答0
回答0
回答0
回答2
回答