微服務(wù)和分布式的區(qū)別

微服務(wù)和分布式的區(qū)別

1.?

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

轉(zhuǎn)自: https://blog.csdn.net/qq_37788067/article/details/79250623 概念: 集群是個物理形態(tài),分布式是個工作方式。 1.分布式:一個業(yè)務(wù)分拆多個子業(yè)務(wù),部署在不同的服務(wù)器上 2.集群:同一個業(yè)務(wù),部署在多個服務(wù)器上 分布式是指將不同的業(yè)務(wù)分布在不同的地方。

而集群指的是將幾臺服務(wù)器集中在一起,實現(xiàn)同一業(yè)務(wù)。

分布式中的每一個節(jié)點,都可以做集群。而集群并不一定就是分布式的。 舉例:就比如新浪網(wǎng),訪問的人多了,他可以做一個集群,前面放一個響應(yīng)服務(wù)器,后面幾臺服務(wù)器完成同一業(yè)務(wù),如果有業(yè)務(wù)訪問的時候,響應(yīng)服務(wù)器看哪臺服務(wù)器的負(fù)載不是很重,就將給哪一臺去完成。 而分布式,從窄意上理解,也跟集群差不多,但是它的組織比較松散,不像集群,有一個組織性,一臺服務(wù)器垮了,其它的服務(wù)器可以頂上來。

分布式的每一個節(jié)點,都完成不同的業(yè)務(wù),一個節(jié)點垮了,那這個業(yè)務(wù)就不可訪問了。 簡單說,分布式是以縮短單個任務(wù)的執(zhí)行時間來提升效率的,而集群則是通過提高單位時間內(nèi)執(zhí)行的任務(wù)數(shù)來提升效率。 例如:如果一個任務(wù)由 10 個子任務(wù)組成,每個子任務(wù)單獨執(zhí)行需 1 小時,則在一臺服務(wù)器上執(zhí)行該任務(wù)需 10 小時。

采用分布式方案,提供 10 臺服務(wù)器,每臺服務(wù)器只負(fù)責(zé)處理一個子任務(wù),不考慮子任務(wù)間的依賴關(guān)系,執(zhí)行完這個任務(wù)只需一個小時。(這種工作模式的一個典型代表就是 Hadoop 的 Map/Reduce 分布式計算模型) 而采用集群方案,同樣提供 10 臺服務(wù)器,每臺服務(wù)器都能獨立處理這個任務(wù)。假設(shè)有 10 個任務(wù)同時到達,10 個服務(wù)器將同時工作,1 小時后,10 個任務(wù)同時完成,這樣,整體來看,還是 1 小時內(nèi)完成一個任務(wù)! 好的設(shè)計應(yīng)該是分布式和集群的結(jié)合,先分布式再集群,具體實現(xiàn)就是業(yè)務(wù)拆分成很多子業(yè)務(wù),然后針對每個子業(yè)務(wù)進行集群部署,這樣每個子業(yè)務(wù)如果出了問題,整個系統(tǒng)完全不會受影響。

另外,還有一個概念和分布式比較相似,那就是微服務(wù)。 微服務(wù)是一種架構(gòu)風(fēng)格,一個大型復(fù)雜軟件應(yīng)用由一個或多個微服務(wù)組成。 系統(tǒng)中的各個微服務(wù)可被獨立部署,各個微服務(wù)之間是松耦合的。

每個微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在所有情況下,每個任務(wù)代表著一個小的業(yè)務(wù)能力。 集群模式是不同服務(wù)器部署同一套服務(wù)對外訪問,實現(xiàn)服務(wù)的負(fù)載均衡。區(qū)別集群的方式是根據(jù)部署多臺服務(wù)器業(yè)務(wù)是否相同。

注:集群模式需要做好session共享,確保在不同服務(wù)器切換的過程中不會因為沒有獲取到session而中止退出服務(wù)。 一般配置Nginx的負(fù)載容器實現(xiàn):靜態(tài)資源緩存、Session共享可以附帶實現(xiàn),Nginx支持5000個并發(fā)量。 答案是肯定的。 微服務(wù) 的意思也就是將模塊拆分成一個獨立的服務(wù)單元通過接口來實現(xiàn)數(shù)據(jù)的交互。

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

一分鐘弄懂什么是分布式和微服務(wù)

簡單的說,微服務(wù)是架構(gòu)設(shè)計方式,分布式是系統(tǒng)部署方式,兩者概念不同 微服務(wù)是啥? 這里不引用書本上的復(fù)雜概論了,簡單來說微服務(wù)就是很小的服務(wù),小到一個服務(wù)只對應(yīng)一個單一的功能,只做一件事。這個服務(wù)可以單獨部署運百科行,服務(wù)之間可以通過RPC來相互交互,每個微服務(wù)都是由獨立的小團隊開發(fā),測試,部署,上線,負(fù)責(zé)它的整個生命周期。

微服務(wù)架構(gòu)又是啥? 在做架構(gòu)設(shè)計的時候,先做邏輯架構(gòu),再做物理架構(gòu),當(dāng)你拿到需求后,估算過**用戶量和并發(fā)量后,計算單個應(yīng)用服務(wù)器能否滿足需求,如果用戶量只有幾百人的小應(yīng)用,單體應(yīng)用就能搞定,即所有應(yīng)用部署在一個應(yīng)用服務(wù)器里,如果是很大用戶量,且某些功能會被頻繁訪問,或者某些功能計算量很大,建議將應(yīng)用拆解為多個子系統(tǒng),各自負(fù)責(zé)各自功能,這就是微服務(wù)架構(gòu)。

那么分布式又是啥? 分布式服務(wù)顧名思義服務(wù)是分散部署在不同的機器上的,一個服務(wù)可能負(fù)責(zé)幾個功能,是一種面向SOA架構(gòu)的,服務(wù)之間也是通過rpc來交互或者是webservice來交互的。邏輯架構(gòu)設(shè)計完后就該做物理架構(gòu)設(shè)計,系統(tǒng)應(yīng)用部署在超過一臺服務(wù)器或虛擬機上,且各分開部署的部分彼此通過各種通訊協(xié)議交互信息,就可算作分布式部署,生產(chǎn)環(huán)境下的微服務(wù)肯定是分布式部署的,分布式部署的應(yīng)用不一定是微服務(wù)架構(gòu)的,比如集群部署,它是把相同應(yīng)用**到不同服務(wù)器上,但是邏輯功能上還是單體應(yīng)用。