摘抄于騰訊云 --集群、分布式祭埂、微服務(wù)的概念及異同
一面氓、集群是指將多臺(tái)服務(wù)器集中在一起,每臺(tái)服務(wù)器都實(shí)現(xiàn)相同的業(yè)務(wù)蛆橡,做相同的事侧但;但是每臺(tái)服務(wù)器并不是缺一不可,存在的主要作用是緩解并發(fā)能力和單點(diǎn)故障轉(zhuǎn)移問(wèn)題航罗。
集群主要具有以下特征:
(1)禀横、伸縮性
在一些大系統(tǒng)中,預(yù)測(cè)最終用戶(hù)的數(shù)量和行為是非常困難的粥血,伸縮性是指系統(tǒng)使用不斷增長(zhǎng)的用戶(hù)數(shù)的能力柏锄;隨著用戶(hù)數(shù)的增長(zhǎng),我們只需將新的服務(wù)器加入集群中即可复亏,對(duì)于用戶(hù)來(lái)看趾娃,服務(wù)無(wú)論從連續(xù)性還是性能上都幾乎沒(méi)有變化,好像系統(tǒng)在不知不覺(jué)中完成了升級(jí)缔御。
(2)抬闷、高可用性
單一服務(wù)器的解決方案并不是一個(gè)健壯方式,因?yàn)槿菀壮霈F(xiàn)單點(diǎn)失效,在某些關(guān)鍵的應(yīng)用程序是不能容忍的笤成,哪怕幾分鐘的死機(jī)评架;高可用性集群的出現(xiàn)就是為了使集群的整體服務(wù)盡可能可用,以便考慮軟硬件的易錯(cuò)性炕泳;如果高可用性集群中的主節(jié)點(diǎn)發(fā)生了故障纵诞,那么這段時(shí)間內(nèi)由次節(jié)點(diǎn)代替它。
(3)培遵、負(fù)載均衡 負(fù)載均衡集群為企業(yè)需求提供了更實(shí)用的系統(tǒng)浙芙,該系統(tǒng)使負(fù)載可以在計(jì)算機(jī)集群中盡可能平均地分?jǐn)偺幚恚撠?fù)載可能是需要均衡的應(yīng)用程序處理負(fù)載或網(wǎng)絡(luò)流量負(fù)載籽腕;這樣的系統(tǒng)非常適合運(yùn)行同一組應(yīng)用程序的大量用戶(hù)嗡呼;每個(gè)節(jié)點(diǎn)都可以處理一部分負(fù)載,并且可以在節(jié)點(diǎn)之間動(dòng)態(tài)分配負(fù)載皇耗,以實(shí)現(xiàn)平衡南窗。
(4)、高性能 這種設(shè)計(jì)的幾圈用來(lái)開(kāi)發(fā)并性編程應(yīng)用模式廊宪,已解決復(fù)雜的科學(xué)問(wèn)題,并行計(jì)算是相對(duì)于串行計(jì)算來(lái)說(shuō)的女轿,并行計(jì)算能力的目的是用來(lái)提高計(jì)算速度
二箭启、什么是分布式?
分布式服務(wù)是指多臺(tái)服務(wù)器集中在一起蛉迹,服務(wù)是分散部署在不同的機(jī)器上傅寡;每臺(tái)機(jī)器都實(shí)現(xiàn)總體中的不同業(yè)務(wù),做不同的事情北救;一個(gè)服務(wù)可能負(fù)責(zé)幾個(gè)功能荐操,是一種面向SOA的架構(gòu);各分開(kāi)部署的部分彼此通過(guò)各種通訊協(xié)議交互信息珍策,并且每臺(tái)服務(wù)器都缺一不可托启,如果某臺(tái)服務(wù)器故障,則部分功能確實(shí)攘宙,或者導(dǎo)致整體無(wú)法運(yùn)行屯耸;分布式存在的主要作用是大幅度的提高效率,緩解服務(wù)器的訪(fǎng)問(wèn)和存儲(chǔ)壓力蹭劈。
將一個(gè)大的系統(tǒng)劃分為多個(gè)業(yè)務(wù)模塊疗绣,業(yè)務(wù)模塊分別部署到不同的機(jī)器上,各個(gè)業(yè)務(wù)模塊之間通過(guò)接口進(jìn)行數(shù)據(jù)交互铺韧。
三多矮、什么是微服務(wù)?
微服務(wù)的概念和分布式比較相似哈打,微服務(wù)是一種架構(gòu)風(fēng)格塔逃;簡(jiǎn)單來(lái)說(shuō)微服務(wù)就是很小的服務(wù)讯壶,小到一個(gè)服務(wù)只對(duì)應(yīng)一個(gè)單一的功能;每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)患雏,這個(gè)服務(wù)可以單獨(dú)部署運(yùn)行鹏溯;各個(gè)服務(wù)之間是松耦合的,服務(wù)之間可以通過(guò)RPC來(lái)相互交互淹仑;微服務(wù)與分布式還有一點(diǎn)區(qū)別是:微服務(wù)的應(yīng)用不一定是分散在讀個(gè)服務(wù)器上丙挽,它也可以是同一個(gè)服務(wù)器。
微服務(wù)相比分布式服務(wù)來(lái)說(shuō)匀借,它的粒度更小颜阐,服務(wù)之間耦合度更低,敏捷性也更高吓肋;但服務(wù)微服務(wù)化后帶來(lái)的挑戰(zhàn)也是顯而易見(jiàn)的凳怨,例如服務(wù)力度小,數(shù)量大是鬼,后期運(yùn)維難度增大等肤舞。
四、集群均蜜、分布式李剖、微服務(wù)的異同及聯(lián)系
(1)、分布式是以縮短單個(gè)任務(wù)的執(zhí)行時(shí)間來(lái)提升效率囤耳,而集群則是通過(guò)提高單位時(shí)間內(nèi)執(zhí)行的任務(wù)數(shù)來(lái)提升效率篙顺;但分布式需要做好事務(wù)管理
(2)、集群模式是不同服務(wù)器部署同一套服務(wù)對(duì)外訪(fǎng)問(wèn)充择,實(shí)現(xiàn)服務(wù)的負(fù)載均衡德玫;區(qū)別集群的方式是根據(jù)部署多臺(tái)服務(wù)器業(yè)務(wù)是否相同,分布式中的每個(gè)階段椎麦,都可以做集群宰僧;而集群并不一定就是分布式的;注意:集群需要做好Session共享观挎,也就是接口要具有無(wú)狀態(tài)特征撒桨,確保在不同服務(wù)器切換的過(guò)程中不會(huì)因?yàn)闆](méi)有獲取到Session而引起服務(wù)終止
(3)、分布式與微服務(wù)的架構(gòu)很相似键兜,只是部署方式不一樣而已凤类;生產(chǎn)環(huán)境下的微服務(wù)肯定是分布式部署的,分布式部署的應(yīng)用不一定是微服務(wù)架構(gòu)的
(4)普气、在設(shè)計(jì)與開(kāi)發(fā)中我們可以將分布式與集群的分開(kāi)嗎谜疤?
分布式的主要功能是將我們的系統(tǒng)模塊化,將系統(tǒng)進(jìn)行解耦,方便維護(hù)和開(kāi)發(fā)夷磕;但并不能解決系統(tǒng)的并發(fā)性和高可用性問(wèn)題履肃;而集群恰好彌補(bǔ)了分布式的缺陷,一方面可以解決或者說(shuō)改善系統(tǒng)的并發(fā)問(wèn)題坐桩,另一方可以解決服務(wù)器如果出現(xiàn)宕機(jī)后尺棋,系統(tǒng)仍然可以正常運(yùn)轉(zhuǎn);好的設(shè)計(jì)應(yīng)該是分布式和集群相結(jié)合绵跷,具體實(shí)現(xiàn)就是業(yè)務(wù)拆分成很多子業(yè)務(wù)膘螟,然后針對(duì)每個(gè)子業(yè)務(wù)進(jìn)行集群部署。