集群、分布式、微服务的概念及异同
一、什么是集群?
? ? ? ?集群是指將多臺服務(wù)器集中在一起,每臺服務(wù)器都實現(xiàn)相同的業(yè)務(wù),做相同的事;但是每臺服務(wù)器并不是缺一不可,存在的主要作用是緩解并發(fā)能力和單點(diǎn)故障轉(zhuǎn)移問題。
集群主要具有以下特征:
(1)、伸縮性
? ? ? ?在一些大系統(tǒng)中,預(yù)測最終用戶的數(shù)量和行為是非常困難的,伸縮性是指系統(tǒng)使用不斷增長的用戶數(shù)的能力;隨著用戶數(shù)的增長,我們只需將新的服務(wù)器加入集群中即可,對于用戶來看,服務(wù)無論從連續(xù)性還是性能上都幾乎沒有變化,好像系統(tǒng)在不知不覺中完成了升級。
(2)、高可用性
? ? ? ?單一服務(wù)器的解決方案并不是一個健壯方式,因為容易出現(xiàn)單點(diǎn)失效,在某些關(guān)鍵的應(yīng)用程序是不能容忍的,哪怕幾分鐘的死機(jī);高可用性集群的出現(xiàn)就是為了使集群的整體服務(wù)盡可能可用,以便考慮軟硬件的易錯性;如果高可用性集群中的主節(jié)點(diǎn)發(fā)生了故障,那么這段時間內(nèi)由次節(jié)點(diǎn)代替它。
(3)、負(fù)載均衡
? ? ? ?負(fù)載均衡集群為企業(yè)需求提供了更實用的系統(tǒng),該系統(tǒng)使負(fù)載可以在計算機(jī)集群中盡可能平均地分?jǐn)偺幚?#xff0c;該負(fù)載可能是需要均衡的應(yīng)用程序處理負(fù)載或網(wǎng)絡(luò)流量負(fù)載;這樣的系統(tǒng)非常適合運(yùn)行同一組應(yīng)用程序的大量用戶;每個節(jié)點(diǎn)都可以處理一部分負(fù)載,并且可以在節(jié)點(diǎn)之間動態(tài)分配負(fù)載,以實現(xiàn)平衡。
(4)、高性能
? ? ? ?這種設(shè)計的幾圈用來開發(fā)并性編程應(yīng)用模式,已解決復(fù)雜的科學(xué)問題,并行計算是相對于串行計算來說的,并行計算能力的目的是用來提高計算速度
二、什么是分布式?
? ? ? ?分布式服務(wù)是指多臺服務(wù)器集中在一起,服務(wù)是分散部署在不同的機(jī)器上;每臺機(jī)器都實現(xiàn)總體中的不同業(yè)務(wù),做不同的事情;一個服務(wù)可能負(fù)責(zé)幾個功能,是一種面向SOA的架構(gòu);各分開部署的部分彼此通過各種通訊協(xié)議交互信息,并且每臺服務(wù)器都缺一不可,如果某臺服務(wù)器故障,則部分功能確實,或者導(dǎo)致整體無法運(yùn)行;分布式存在的主要作用是大幅度的提高效率,緩解服務(wù)器的訪問和存儲壓力。
? ? ? ?將一個大的系統(tǒng)劃分為多個業(yè)務(wù)模塊,業(yè)務(wù)模塊分別部署到不同的機(jī)器上,各個業(yè)務(wù)模塊之間通過接口進(jìn)行數(shù)據(jù)交互。
三、什么是微服務(wù)?
? ? ? ?微服務(wù)的概念和分布式比較相似,微服務(wù)是一種架構(gòu)風(fēng)格;簡單來說微服務(wù)就是很小的服務(wù),小到一個服務(wù)只對應(yīng)一個單一的功能;每個微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù),這個服務(wù)可以單獨(dú)部署運(yùn)行;各個服務(wù)之間是松耦合的,服務(wù)之間可以通過RPC來相互交互;微服務(wù)與分布式還有一點(diǎn)區(qū)別是:微服務(wù)的應(yīng)用不一定是分散在讀個服務(wù)器上,它也可以是同一個服務(wù)器。
? ? ? ?微服務(wù)相比分布式服務(wù)來說,它的粒度更小,服務(wù)之間耦合度更低,敏捷性也更高;但服務(wù)微服務(wù)化后帶來的挑戰(zhàn)也是顯而易見的,例如服務(wù)力度小,數(shù)量大,后期運(yùn)維難度增大等。
四、集群、分布式、微服務(wù)的異同及聯(lián)系
(1)、分布式是以縮短單個任務(wù)的執(zhí)行時間來提升效率,而集群則是通過提高單位時間內(nèi)執(zhí)行的任務(wù)數(shù)來提升效率;但分布式需要做好事務(wù)管理
(2)、集群模式是不同服務(wù)器部署同一套服務(wù)對外訪問,實現(xiàn)服務(wù)的負(fù)載均衡;區(qū)別集群的方式是根據(jù)部署多臺服務(wù)器業(yè)務(wù)是否相同,分布式中的每個階段,都可以做集群;而集群并不一定就是分布式的;注意:集群需要做好Session共享,也就是接口要具有無狀態(tài)特征,確保在不同服務(wù)器切換的過程中不會因為沒有獲取到Session而引起服務(wù)終止
(3)、分布式與微服務(wù)的架構(gòu)很相似,只是部署方式不一樣而已;生產(chǎn)環(huán)境下的微服務(wù)肯定是分布式部署的,分布式部署的應(yīng)用不一定是微服務(wù)架構(gòu)的
(4)、在設(shè)計與開發(fā)中我們可以將分布式與集群的分開嗎?
? ? ? ?分布式的主要功能是將我們的系統(tǒng)模塊化,將系統(tǒng)進(jìn)行解耦,方便維護(hù)和開發(fā);但并不能解決系統(tǒng)的并發(fā)性和高可用性問題;而集群恰好彌補(bǔ)了分布式的缺陷,一方面可以解決或者說改善系統(tǒng)的并發(fā)問題,另一方可以解決服務(wù)器如果出現(xiàn)宕機(jī)后,系統(tǒng)仍然可以正常運(yùn)轉(zhuǎn);好的設(shè)計應(yīng)該是分布式和集群相結(jié)合,具體實現(xiàn)就是業(yè)務(wù)拆分成很多子業(yè)務(wù),然后針對每個子業(yè)務(wù)進(jìn)行集群部署。
?
?
總結(jié)
以上是生活随笔為你收集整理的集群、分布式、微服务的概念及异同的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 | 使用孪生BERT网络生成句
- 下一篇: 论文浅尝 | ICLR 2020 - 一