二維碼
        企資網(wǎng)

        掃一掃關(guān)注

        當(dāng)前位置: 首頁 » 企資快訊 » 匯總 » 正文

        中心化和去中心化,集群和分布式之間的區(qū)別和聯(lián)系

        放大字體  縮小字體 發(fā)布日期:2021-09-04 04:26:26    作者:史舒文    瀏覽次數(shù):32
        導(dǎo)讀

        今天談下幾個(gè)關(guān)鍵概念的區(qū)別。這幾個(gè)是當(dāng)前在構(gòu)建滿足海量大并發(fā)下的高可用架構(gòu)下都經(jīng)常會遇到的一些關(guān)鍵概念。集群和分布式區(qū)別和聯(lián)系首先談下集群和分布式,這兩個(gè)概念是最容易混淆的。先看下網(wǎng)上關(guān)于這兩個(gè)概念的

        今天談下幾個(gè)關(guān)鍵概念的區(qū)別。這幾個(gè)是當(dāng)前在構(gòu)建滿足海量大并發(fā)下的高可用架構(gòu)下都經(jīng)常會遇到的一些關(guān)鍵概念。

        集群和分布式區(qū)別和聯(lián)系

        首先談下集群和分布式,這兩個(gè)概念是最容易混淆的。先看下網(wǎng)上關(guān)于這兩個(gè)概念的一個(gè)基礎(chǔ)解釋如下:

        對于集群是當(dāng)單節(jié)點(diǎn)性能不足的時(shí)候,將多個(gè)節(jié)點(diǎn)組合起來共同滿足外部的業(yè)務(wù)需求。而對于分布式則是將單個(gè)節(jié)點(diǎn)性能不做的時(shí)候,將業(yè)務(wù)需求分解為多個(gè)子業(yè)務(wù),然后將各個(gè)子業(yè)務(wù)分別部署到不同的節(jié)點(diǎn)。

        集群一般還會強(qiáng)調(diào)在多臺服務(wù)器位置集中,并且容易統(tǒng)一管理;而分布式?jīng)]有具體要求,不論放置在哪個(gè)位置,只要通過網(wǎng)絡(luò)連接起來就行。

        在看知乎上有一個(gè)形象的比喻如下:

        小飯店原來只有一個(gè)廚師,切菜洗菜備料炒菜全干。后來客人多了,廚房一個(gè)廚師忙不過來,又請了個(gè)廚師,兩個(gè)廚師都能炒一樣的菜,這兩個(gè)廚師的關(guān)系是集群。為了讓廚師專心炒菜,把菜做到極致,又請了個(gè)配菜師負(fù)責(zé)切菜,備菜,備料,廚師和配菜師的關(guān)系是分布式,一個(gè)配菜師也忙不過來了,又請了個(gè)配菜師,兩個(gè)配菜師關(guān)系是集群。

        而實(shí)際你會看到當(dāng)前在業(yè)務(wù)需求的滿足中往往同時(shí)存在兩種方式,既既需要考慮業(yè)務(wù)需求本身的分解,同時(shí)又需要考慮分解完的子業(yè)務(wù)也要提供多個(gè)節(jié)點(diǎn)組合成集群來提供能力。因此你會看到另外一個(gè)說法,即分布式集群的概念。

        分布式集群既體現(xiàn)了業(yè)務(wù)需求額拆分,又體現(xiàn)了單個(gè)子業(yè)務(wù)滿足時(shí)候多節(jié)點(diǎn)組合。

        不論是HA還是Cluster都可以理解為集群,但是對于HA架構(gòu)往往存在兩種場景,一種就是兩個(gè)節(jié)點(diǎn)是雙活同時(shí)提供能力,還是主備模式一個(gè)節(jié)點(diǎn)僅僅是備用不提供能力。如果都提供能力那么HA也是一種最簡單的集群。

        集群本身有一個(gè)關(guān)鍵能力,即多節(jié)點(diǎn)冗余后增加了可靠性,不會因?yàn)閱蝹€(gè)節(jié)點(diǎn)故障導(dǎo)致整個(gè)系統(tǒng)無法使用。在分布式架構(gòu)下,當(dāng)節(jié)點(diǎn)分布式后,對于子業(yè)務(wù)滿足的節(jié)點(diǎn)仍然需要考慮HA或集群架構(gòu)來確保高可用性。

        而對于分布式,除了通過大任務(wù)拆分來解決性能問題外,另外一個(gè)關(guān)鍵好處就是各個(gè)子業(yè)務(wù)服務(wù)滿足上實(shí)現(xiàn)了解耦和高度自治,即不會因?yàn)樽訕I(yè)務(wù)A的故障導(dǎo)致子業(yè)務(wù)B也受到影響,提供兩個(gè)子業(yè)務(wù)的資源本身實(shí)現(xiàn)了進(jìn)一步的拆分和隔離。

        數(shù)據(jù)持久化和存儲

        對于集群架構(gòu)一般都會采用集中化存儲來解決數(shù)據(jù)持久化問題,同時(shí)集中化存儲也方便進(jìn)行相關(guān)的事務(wù)管理,確保數(shù)據(jù)一致性。

        在分布式架構(gòu)中,特別是在類似數(shù)據(jù)庫,緩存等分布式架構(gòu)中,數(shù)據(jù)的持久化存儲本身也是分布式的。與此同時(shí)實(shí)現(xiàn)了計(jì)算能力和存儲能力的分布式。每個(gè)分布式的單元既包括計(jì)算能力也包括本地的存儲能力。

        因此在數(shù)據(jù)或持久化存儲分布式后,帶來關(guān)鍵的分布式事務(wù)問題需要解決。同時(shí)帶來大家熟知的CAP定理,如何在確保高可用性和高一致性兩者之間進(jìn)行權(quán)衡。

        所以簡單來說從應(yīng)用架構(gòu)實(shí)現(xiàn)的復(fù)雜度,后期的運(yùn)維治理復(fù)雜度來說,集群都是相當(dāng)更加兼容和容易實(shí)現(xiàn)的方案。能夠集群解決的盡量集群解決,不要一味地去追求分布式。

        集群和負(fù)載均衡

        對于集群和負(fù)載均衡也是會經(jīng)常混用的概念。負(fù)載均衡簡單來說僅僅是實(shí)現(xiàn)請求的路由分發(fā)功能,對于集群來說會暴露一個(gè)對外集群地址,自然具備負(fù)載均衡能力。當(dāng)前談的負(fù)載均衡既可以是類似Haproxy或Nginix實(shí)現(xiàn)的軟負(fù)載均衡,也可以是類似F5,Array等設(shè)備實(shí)現(xiàn)的硬件負(fù)載均衡。

        集群具備負(fù)載均衡能力,但是負(fù)載均衡一般不具備集群的所有能力。

        集群除了負(fù)載均衡還必須具備對集群內(nèi)所有的節(jié)點(diǎn)的管理能力,狀態(tài)監(jiān)控,狀態(tài)節(jié)點(diǎn)的一致性維護(hù)等能力。類似程序部署,心跳狀態(tài)檢查,配置信息分發(fā),分布式事務(wù)協(xié)調(diào)等都屬于集群管理節(jié)點(diǎn)需要具備的能力。當(dāng)前可以看到類似etcd,zookeeper等都是常用的分布式集群的實(shí)現(xiàn)技術(shù)。

        中心化和去中心化

        首先還是要解釋下中心化和去中心化的概念。

        還是接著前面的業(yè)務(wù)需求A和IT系統(tǒng)服務(wù)能力提供這個(gè)場景,集群和分布式都是在考慮能力提供B如何去滿足A的問題。

        那么現(xiàn)在還有業(yè)務(wù)需求B,業(yè)務(wù)需求C等其它需求。業(yè)務(wù)需求A,B,C之間是需要相互打交道和協(xié)同的。這個(gè)時(shí)候協(xié)同就存在兩個(gè)方式。

      1. 其一是ABC三者的協(xié)同都需要通過能力提供這個(gè)中轉(zhuǎn)
      2. 其二是ABC之間點(diǎn)對點(diǎn)協(xié)同

        對于場景一即是中心化架構(gòu),場景二即是去中心化架構(gòu)。因此對于一個(gè)架構(gòu)是中心化和去中心化是針對ABC之間的協(xié)同來說。而不是針對業(yè)務(wù)需求和能力提供之間來說的。

        典型的例子如微服務(wù)里面的服務(wù)注冊中心。

        一般會說是一個(gè)去中心化的架構(gòu),也就是微服務(wù)A和微服務(wù)B之間的調(diào)用,這個(gè)消息流不需要通過服務(wù)注冊中心,而是A和B之間直接完成的,那么在這種情況下即使服務(wù)注冊中心宕機(jī)也對接口調(diào)用和訪問沒有影響。

        而對于傳統(tǒng)ESB這種代理模式即典型的中心化架構(gòu),所有的請求流都需要通過ESB總線管道,那么當(dāng)ESB總線出現(xiàn)宕機(jī)的時(shí)候所有請求都無法訪問。

        那么去中心化架構(gòu)是否徹底去中心化?

        在去中心化架構(gòu)中,對于注冊中心來說仍然是一個(gè)分布式集群,因?yàn)榉?wù)注冊和發(fā)現(xiàn)實(shí)現(xiàn)仍然需要有一個(gè)統(tǒng)一的管控點(diǎn),這個(gè)管控能力還是需要在注冊中心這個(gè)分布式集群實(shí)現(xiàn)。只是去中心化架構(gòu)中進(jìn)一步將控制流和數(shù)據(jù)流分離。

        對于控制流量能力仍然在注冊中心,采用傳統(tǒng)分布式或集群方式來實(shí)現(xiàn)。而對于數(shù)據(jù)流則是點(diǎn)對點(diǎn)訪問,徹底的去中心化,不需要再通過中心化節(jié)點(diǎn)中轉(zhuǎn)和代理。

        在去中心化架構(gòu)下有兩個(gè)關(guān)鍵好處。

        其一是所有的數(shù)據(jù)流都不通過中心節(jié)點(diǎn)中轉(zhuǎn),那么自然訪問性能更好。其二就是不會因?yàn)橹行墓?jié)點(diǎn)的服務(wù)器故障導(dǎo)致ABC之間相互無法訪問。

        但是去中心化架構(gòu)本身也帶來問題,即ABC之間由于是直接訪問,那么相當(dāng)來說都是可見可訪問的,對于傳統(tǒng)ESB里面最重要的一個(gè)服務(wù)代理和位置透明特點(diǎn)沒有了。其次就是由于點(diǎn)對點(diǎn)訪問導(dǎo)致了數(shù)據(jù)流不通過中心節(jié)點(diǎn),那么很多類似安全,日志,流控等原來通過消息流攔截很容易實(shí)現(xiàn)的內(nèi)容現(xiàn)在不容易實(shí)現(xiàn)。

        而在去中心化架構(gòu)演進(jìn)過程中。出現(xiàn)了一個(gè)新變化即ServiceMesh服務(wù)網(wǎng)格思路,將相關(guān)管控能力以邊車Sidecar或Agent代理組件的方式進(jìn)一步下沉和部署到各個(gè)微服務(wù)模塊中。這樣就能將管控類問題得到很好的解決。

        但是代理類和位置透明仍然無法解決,而這個(gè)能力可以轉(zhuǎn)移到類似Nginix組件來實(shí)現(xiàn)。

        兩隊(duì)概念之間的關(guān)系和聯(lián)系

        去中心化架構(gòu)針對的是ABC業(yè)務(wù)需求之間的訪問實(shí)現(xiàn)點(diǎn)對點(diǎn),體現(xiàn)的是控制流和數(shù)據(jù)流分離,但是控制流仍然需要通過服務(wù)組件來提供,這個(gè)服務(wù)組件的部署仍然需要采用集群模式并結(jié)合分布式來實(shí)現(xiàn)高可用。

        對于各種滿足集成需求的中間件往往會出現(xiàn)中心化還是去中心化架構(gòu)的概念,但是對于應(yīng)用系統(tǒng)本身滿足業(yè)務(wù)需求這個(gè)場景,一般不會出現(xiàn)是不是中心化架構(gòu)這個(gè)概念。應(yīng)用系統(tǒng)對需求的滿足只會出現(xiàn)集群和分布式兩個(gè)方式,這里的分布式和是否去中心化沒有關(guān)系。

        分布式和集群兩者一般會組合使用,分布式實(shí)現(xiàn)功能需求解耦優(yōu)點(diǎn),而集群實(shí)現(xiàn)高可靠性和冗余的優(yōu)點(diǎn),而對于大并發(fā)性能的滿足兩種方式都具備具備改能力。

        中心化架構(gòu)的優(yōu)勢是在管控治理上面,通過中心化架構(gòu)可以通過攔截方式實(shí)現(xiàn)各種管控治理能力,但是帶來的問題就是引入一個(gè)新的中介點(diǎn),講解了整個(gè)應(yīng)用的高可靠性。去中心化架構(gòu)本身提高了高可靠性,但是犧牲了一定的管控治理能力。

      3.  
        (文/史舒文)
        免責(zé)聲明
        本文僅代表作發(fā)布者:史舒文個(gè)人觀點(diǎn),本站未對其內(nèi)容進(jìn)行核實(shí),請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號

        粵ICP備16078936號

        微信

        關(guān)注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯(lián)系
        客服

        聯(lián)系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號: weishitui

        客服001 客服002 客服003

        工作時(shí)間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        主站蜘蛛池模板: 免费无码一区二区三区蜜桃大| 精品国产日韩亚洲一区在线| 福利一区二区在线| 岛国无码av不卡一区二区| 国产伦精品一区二区三区不卡| 波多野结衣免费一区视频| 视频一区二区三区人妻系列| 亚洲色精品三区二区一区| 麻豆文化传媒精品一区二区| 久久青草国产精品一区| 不卡无码人妻一区三区音频| 夜色阁亚洲一区二区三区| 国产剧情一区二区| 国产成人久久一区二区三区| 人妻视频一区二区三区免费| 亚洲一区电影在线观看| 亚洲熟妇av一区| 亚洲中文字幕在线无码一区二区 | 东京热无码一区二区三区av| 国产精品盗摄一区二区在线| 国精产品一区一区三区有限公司| 中文字幕av一区| 日韩美一区二区三区| 国产成人一区二区动漫精品| 波多野结衣一区二区三区高清在线| 日韩精品国产一区| 一区二区三区无码高清视频| 一区二区三区AV高清免费波多| 本免费AV无码专区一区| 香蕉免费一区二区三区| 中文字幕一区二区三匹| 最新中文字幕一区二区乱码| 精品91一区二区三区| 中文字幕一区二区三区在线播放 | 精彩视频一区二区三区| 精品视频一区在线观看| 狠狠做深爱婷婷综合一区| 久久国产一区二区| 竹菊影视欧美日韩一区二区三区四区五区 | 在线精品国产一区二区三区| 国产一区二区三区在线视頻|