分布式架構(gòu)套路No.74

      網(wǎng)友投稿 914 2022-05-29

      今天小蕉跟大伙一起聊聊分布式系統(tǒng)的架構(gòu)的套路。在開始說套路之前,大家先思考一個問題,為什么要進(jìn)行分布式架構(gòu)?

      大多數(shù)的開發(fā)者大多數(shù)的系統(tǒng)可能從來沒接觸過分布式系統(tǒng),也根本沒必要進(jìn)行分布式系統(tǒng)架構(gòu),為什么?因?yàn)樵谠L問量或者QPS沒有達(dá)到單臺機(jī)器的性能瓶頸的時候,根本沒必要進(jìn)行分布式架構(gòu)。那如果業(yè)務(wù)量上來了,一般會怎么解決呢?

      首先考慮的就是機(jī)器升級。機(jī)器配置的垂直擴(kuò)展,首先要找到當(dāng)前性能的瓶頸點(diǎn),是CPU,是內(nèi)存,是硬盤,還是帶寬。砸錢加CPU,砸錢換SSD硬盤,砸錢換1T內(nèi)存,這通常是解決問題最直接也最高效的方法。帶寬不夠?加帶寬,1G不夠用100G。CPU 8核不夠?搞32核96核。這是絕大多數(shù)公司能思考到的第一個方案,也是最高效最快最安全的方法,立竿見影。

      其次就是系統(tǒng)拆分,將所提供服務(wù)的主流程以及支線流程梳理出來,按照流程進(jìn)行系統(tǒng)拆分。如同一棵樹,核心業(yè)務(wù)作為主干流程,其他系統(tǒng)按照需要進(jìn)行拆分,如同樹的開枝散葉。所采取的方式有這么一些,按前后端進(jìn)行拆分,按照領(lǐng)域拆分,按團(tuán)隊(duì)拆分,當(dāng)然通常來說這些拆分基本都要跟著組織架構(gòu)走。

      再不行就進(jìn)行技術(shù)升級,更換更加高效或者場景適合的技術(shù)。比如從 Oracle 更換到HBase。從A數(shù)據(jù)庫連接池更換到B數(shù)據(jù)庫連接池。技術(shù)的變革對于業(yè)務(wù)量的支持也是非常巨大的,同一臺機(jī)器不同的技術(shù),效能發(fā)揮的程度可以說有天壤之別。

      最后的最后手段才會考慮分布式架構(gòu),實(shí)在是砸不出這么多錢了,實(shí)在是沒辦法了。因?yàn)榉植际郊軜?gòu)肯定會帶來非常多非常多的一致性問題,原本只需要訪問一臺機(jī)器,現(xiàn)在需要訪問N臺,那么這N臺機(jī)器的一致性怎么保證,以前撐死搞個主從備份就算完了,定時同步一下數(shù)據(jù)就好,現(xiàn)在N臺設(shè)備的數(shù)據(jù)怎么管理,甚至這個集群本身怎么管理,都會成為一個致命的問題。

      所以只有等業(yè)務(wù)量到達(dá)一定程度了,單臺機(jī)器扛不住了,才會開始堆錢升級機(jī)器,系統(tǒng)拆分,換技術(shù),繼續(xù)堆錢升級機(jī)器,系統(tǒng)拆分...周而復(fù)始,發(fā)現(xiàn)成本太高或者技術(shù)已經(jīng)到達(dá)上線了。最后沒辦法,就選擇分布式架構(gòu)了。

      但是分布式架構(gòu)的優(yōu)勢也是明顯的,用一群低廉的設(shè)備,來提供一個高性能高吞吐量的穩(wěn)定的系統(tǒng),下面開始說說常見的分布式集群的架構(gòu)。

      1、純負(fù)載均衡形式。

      分布式架構(gòu)的套路No.74

      在集群前面,前置一個流量分發(fā)的組件進(jìn)行流量分發(fā),整個集群的機(jī)器提供無差別的服務(wù),這在常見的 web 服務(wù)器中是最最常見的。目前比較主流的方式就是整個集群機(jī)器上云,根據(jù)實(shí)時的調(diào)用量進(jìn)行云服務(wù)器彈性伸縮。常見的負(fù)載均衡有硬件層面的 F5、軟件層面的 nginx 等。

      2、領(lǐng)導(dǎo)選舉型

      整個集群的消息都會轉(zhuǎn)發(fā)到集群的領(lǐng)導(dǎo)這里,是一種 master-slavers,區(qū)別只是這個 master 是被臨時選舉出來的,一旦 master 宕機(jī),集群會立刻選舉出一個新的領(lǐng)導(dǎo),繼續(xù)對外提供服務(wù)。使用領(lǐng)導(dǎo)選舉型架構(gòu)的典型的應(yīng)用有 ElasticSearch,zookeeper。

      3、區(qū)塊鏈型

      整個集群的每一個節(jié)點(diǎn)都可以進(jìn)行記錄,但是記錄的內(nèi)容要得到整個集群 N 個機(jī)器的認(rèn)可才是合法的。典型的應(yīng)用有 Bit Coin,以及 Hyperledger。

      4、master-slaver型

      整個集群以某臺 master 為中樞,進(jìn)行集群的調(diào)度。交互是這樣,一般會把所有的管理類型的數(shù)據(jù)放到 master 上,而把具體的數(shù)據(jù)放到 slaver 上,實(shí)際進(jìn)行調(diào)用的時候,client 先調(diào)用 master 獲取數(shù)據(jù)所存放的 server 的 信息,再自行跟 slave 進(jìn)行交互。典型的系統(tǒng)有 Hadoop。集群,HBase 集群,Redis 集群等。

      5、規(guī)則型一致性Hash

      這種架構(gòu)類型一般出現(xiàn)在數(shù)據(jù)庫分庫分表的設(shè)計中。按照規(guī)則進(jìn)行分庫分表,在查詢之前使用規(guī)則引擎進(jìn)行庫和表的確認(rèn),再對具體的應(yīng)用進(jìn)行訪問。為什么要用一致性 Hash ?其實(shí)用什么都可以,只是對于這類應(yīng)用來說一致性 Hash 比較常見而已。

      好了,至此,已經(jīng)把我所知道的大部分分布式集群的套路說完了,總結(jié)一下。

      1、升級機(jī)器配置是最直接的升級方式。不到萬不得已不會使用分布式

      2、分布式的核心就是業(yè)務(wù)拆分以及流量分發(fā)。

      來來來。都快來留言讓我知道還有人在看

      https://mp.weixin.qq.com/s?__biz=MzAxNjk4ODE4OQ==&mid=2247484258&idx=1&sn=2c74be06b032cc926366c409f4f69b83&chksm=9bed2210ac9aab06e067725331e0bb6cd1b723a2045a7f0f2dfcb33f63ad52ab4a9aff3fbfea&scene=21#wechat_redirect

      分布式

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Java適配器模式(adapter)
      下一篇:程序員歌曲推薦
      相關(guān)文章
      亚洲精品成人区在线观看| 国产亚洲日韩在线三区| 亚洲精品一品区二品区三品区| 极品色天使在线婷婷天堂亚洲| 亚洲国产理论片在线播放| 亚洲成色WWW久久网站| 亚洲一区二区三区无码中文字幕| 亚洲爽爽一区二区三区| 亚洲国产专区一区| 亚洲成a人片在线播放| 亚洲AⅤ视频一区二区三区| 在线播放亚洲精品| 国产AV日韩A∨亚洲AV电影| 在线观看亚洲电影| mm1313亚洲精品国产| 亚洲国产精品综合久久网络| 亚洲真人日本在线| 亚洲毛片αv无线播放一区| 亚洲一区爱区精品无码| 亚洲国产综合无码一区 | 亚洲综合色一区二区三区| 亚洲永久在线观看| 亚洲国产综合AV在线观看| 日本亚洲欧美色视频在线播放| 亚洲av日韩精品久久久久久a| 色欲aⅴ亚洲情无码AV蜜桃| 国产亚洲Av综合人人澡精品| 亚洲人成电影网站国产精品| 国产亚洲精久久久久久无码77777| 亚洲精品国产精品乱码视色 | 亚洲日本一线产区和二线产区对比| 亚洲中文字幕无码av| 亚洲av日韩精品久久久久久a| 亚洲国产精品尤物yw在线| 亚洲中文字幕无码日韩| 老汉色老汉首页a亚洲| 亚洲一区二区三区免费视频| 亚洲精品天堂无码中文字幕| 国产成人综合亚洲绿色| 亚洲日韩aⅴ在线视频| 久久精品国产亚洲AV大全|