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