集群,分布式,微服務(wù)概念和區(qū)別理解

概念:

集群是個(gè)物理形態(tài),分布式是個(gè)工作方式。

分布式:一個(gè)業(yè)務(wù)分拆多個(gè)子業(yè)務(wù),部署在不同的服務(wù)器上

集群:同一個(gè)業(yè)務(wù),部署在多個(gè)服務(wù)器上

1:分布式是指將不同的業(yè)務(wù)分布在不同的地方。而集群指的是將幾臺服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù)。

分布式中的每一個(gè)節(jié)點(diǎn),都可以做集群。而集群并不一定就是分布式的。

舉例:就比如新浪網(wǎng),訪問的人多了,他可以做一個(gè)群集,前面放一個(gè)響應(yīng)服務(wù)器,后面幾臺服務(wù)器完成同一業(yè)務(wù),如果有業(yè)務(wù)訪問的時(shí)候,響應(yīng)服務(wù)器看哪臺服務(wù)器的負(fù)載不是很重,就將給哪一臺去完成。

而分布式,從窄意上理解,也跟集群差不多,但是它的組織比較松散,不像集群,有一個(gè)組織性,一臺服務(wù)器垮了,其它的服務(wù)器可以頂上來。

分布式的每一個(gè)節(jié)點(diǎn),都完成不同的業(yè)務(wù),一個(gè)節(jié)點(diǎn)垮了,那這個(gè)業(yè)務(wù)就不可訪問了。

2:簡單說,分布式是以縮短單個(gè)任務(wù)的執(zhí)行時(shí)間來提升效率的,而集群則是通過提高單位時(shí)間內(nèi)執(zhí)行的任務(wù)數(shù)來提升效率。

例如:如果一個(gè)任務(wù)由 10 個(gè)子任務(wù)組成,每個(gè)子任務(wù)單獨(dú)執(zhí)行需 1 小時(shí),則在一臺服務(wù)器上執(zhí)行該任務(wù)需 10 小時(shí)。

采用分布式方案,提供 10 臺服務(wù)器,每臺服務(wù)器只負(fù)責(zé)處理一個(gè)子任務(wù),不考慮子任務(wù)間的依賴關(guān)系,執(zhí)行完這個(gè)任務(wù)只需一個(gè)小時(shí)。(這種工作模式的一個(gè)典型代表就是 Hadoop 的 Map/Reduce 分布式計(jì)算模型)

而采用集群方案,同樣提供 10 臺服務(wù)器,每臺服務(wù)器都能獨(dú)立處理這個(gè)任務(wù)。假設(shè)有 10 個(gè)任務(wù)同時(shí)到達(dá),10 個(gè)服務(wù)器將同時(shí)工作,1 小時(shí)后,10個(gè)任務(wù)同時(shí)完成,這樣,整身來看,還是 1 小時(shí)內(nèi)完成一個(gè)任務(wù)!

好的設(shè)計(jì)應(yīng)該是分布式和集群的結(jié)合,先分布式再集群,具體實(shí)現(xiàn)就是業(yè)務(wù)拆分成很多子業(yè)務(wù),然后針對每個(gè)子業(yè)務(wù)進(jìn)行集群部署,這樣每個(gè)子業(yè)務(wù)如果出了問題,整個(gè)系統(tǒng)完全不會受影響。

另外,還有一個(gè)概念和分布式比較相似,那就是微服務(wù)。

微服務(wù)是一種架構(gòu)風(fēng)格,一個(gè)大型復(fù)雜軟件應(yīng)用由一個(gè)或多個(gè)微服務(wù)組成。系統(tǒng)中的各個(gè)微服務(wù)可被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在所有情況下,每個(gè)任務(wù)代表著一個(gè)小的業(yè)務(wù)能力。

區(qū)別:

1.分布式

將一個(gè)大的系統(tǒng)劃分為多個(gè)業(yè)務(wù)模塊,業(yè)務(wù)模塊分別部署到不同的機(jī)器上,各個(gè)業(yè)務(wù)模塊之間通過接口進(jìn)行數(shù)據(jù)交互。區(qū)別分布式的方式是根據(jù)不同機(jī)器不同業(yè)務(wù)。

上面:service A、B、C、D 分別是業(yè)務(wù)組件,通過API Geteway進(jìn)行業(yè)務(wù)訪問。

注:分布式需要做好事務(wù)管理。

分布式事務(wù)可參考:微服務(wù)架構(gòu)的分布式事務(wù)解決方案

2.集群模式

集群模式是不同服務(wù)器部署同一套服務(wù)對外訪問,實(shí)現(xiàn)服務(wù)的負(fù)載均衡。區(qū)別集群的方式是根據(jù)部署多臺服務(wù)器業(yè)務(wù)是否相同。

注:集群模式需要做好session共享,確保在不同服務(wù)器切換的過程中不會因?yàn)闆]有獲取到session而中止退出服務(wù)。

一般配置Nginx*的負(fù)載容器實(shí)現(xiàn):靜態(tài)資源緩存、Session共享可以附帶實(shí)現(xiàn),Nginx支持5000個(gè)并發(fā)量。

3.分布式是否屬于微服務(wù)?

答案是肯定的。微服務(wù)的意思也就是將模塊拆分成一個(gè)獨(dú)立的服務(wù)單元通過接口來實(shí)現(xiàn)數(shù)據(jù)的交互。

4.微服務(wù)架構(gòu)

微服務(wù)的設(shè)計(jì)是為了不因?yàn)槟硞€(gè)模塊的升級和BUG影響現(xiàn)有的系統(tǒng)業(yè)務(wù)。微服務(wù)與分布式的細(xì)微差別是,微服務(wù)的應(yīng)用不一定是分散在多個(gè)服務(wù)器上,他也可以是同一個(gè)服務(wù)器。

分布式和微服的架構(gòu)很相似,只是部署的方式不一樣而已。


轉(zhuǎn)自:https://blog.csdn.net/qq_37788067/article/details/79250623

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容