幾種架構(gòu)設(shè)計(jì)模式導(dǎo)論(上)

1.架構(gòu)的概念是什么

這真是個(gè)不太好回答的問題亡电,100個(gè)人回答得有101個(gè)答案请契,另外的那一個(gè)一定是大家妥協(xié)商量出來的結(jié)果忠寻。呵呵~~煞躬,我理解量淌,架構(gòu)就是骨骼,如下面的圖所示:

人類包括動(dòng)物的身體主要是由由骨骼來支撐的飞涂,然后是在其上的肌肉旦部、神經(jīng)、皮膚等较店。架構(gòu)對于軟件的重要性和意義不亞于骨架對人類身體的意義士八。

2. 設(shè)計(jì)模式的概念是什么

每當(dāng)有同行來我司面試,這個(gè)問題我都會(huì)問梁呈,不下于數(shù)十次婚度,回答五花八門、千奇百怪官卡。不可謂不是群魔亂舞啊蝗茁,呵呵~~~。但是寻咒,在我看來哮翘,模式就是經(jīng)驗(yàn),設(shè)計(jì)模式就是設(shè)計(jì)經(jīng)驗(yàn)毛秘,有了這些經(jīng)驗(yàn)忍坷,我們就能在特定情況、前提下使用特定的設(shè)計(jì)熔脂、組合設(shè)計(jì),這樣可以大大節(jié)省我們的設(shè)計(jì)時(shí)間柑肴、簡化我們的設(shè)計(jì)思路霞揉、提高工作效率。
時(shí)間如梭晰骑,作為一個(gè)老碼農(nóng)适秩,已奉獻(xiàn)10年有余绊序,經(jīng)歷的系統(tǒng)架構(gòu)設(shè)計(jì)不少,在這里來秽荞,我會(huì)把工作中使用到的一些架構(gòu)方面的設(shè)計(jì)模式分享給大家骤公,希望大家少走彎路,早日走上人生巔峰扬跋〗桌Γ總體而言,共有八種钦听,分別是:

  • 單庫單應(yīng)用模式:最簡單的洒试,最常見的,可能大家都見過朴上,都用過
  • 內(nèi)容分發(fā)模式:目前用的比較多垒棋,大廠都在用
  • 查詢分離模式:應(yīng)對于大并發(fā)的查詢、業(yè)務(wù)處理
  • 微服務(wù)模式:適用于非常復(fù)雜的業(yè)務(wù)的拆解
  • 多級緩存模式:可以把各種緩存玩的非常好
  • 分庫分表模式:解決單機(jī)數(shù)據(jù)庫痪宰、表瓶頸
  • 彈性伸縮模式:解決波峰叼架、波谷業(yè)務(wù)流量不均勻的方法之一
  • 多機(jī)房模式:解決高可用、高性能的一種方法

3. 單庫單應(yīng)用模式

這是最簡單的一種模式衣撬,可能我們大部分的本科畢業(yè)設(shè)計(jì)乖订、一些課堂設(shè)計(jì)、小的應(yīng)用淮韭,基本上都是這種模式垢粮,這種模式的一般設(shè)計(jì)見下圖:

如上圖,這種模式正常情況下一般只有一個(gè)數(shù)據(jù)庫靠粪,一個(gè)業(yè)務(wù)層蜡吧,一個(gè)管理系統(tǒng),所有的業(yè)務(wù)都是用過業(yè)務(wù)層完成的占键,所有的數(shù)據(jù)也都是存儲(chǔ)在一個(gè)數(shù)據(jù)庫中的昔善,好一點(diǎn)會(huì)有數(shù)據(jù)庫的同步。雖然簡單畔乙,但是也并不是一無是處君仆。

  • 優(yōu)點(diǎn):結(jié)構(gòu)簡單、開發(fā)快牲距、實(shí)現(xiàn)簡單返咱,可用于產(chǎn)品的第一版或有原型驗(yàn)證需求、用戶少的設(shè)計(jì)牍鞠。
  • 缺點(diǎn):性能差咖摹、低可用、擴(kuò)展性差难述,不適用于大規(guī)模部署萤晴、應(yīng)用吐句、流量等生產(chǎn)環(huán)境。

4. 內(nèi)容分發(fā)模式

基本上所有的大型的網(wǎng)站店读、大廠都有或多或少的采用這一種模式嗦枢,比較常見的應(yīng)用場景是用CDN技術(shù)把網(wǎng)頁、圖片屯断、CSS文虏、JS、LIB等這些靜態(tài)資源放到離用戶最近的服務(wù)器裹纳。這種模式的一般設(shè)計(jì)見下圖:

如上圖择葡,這種模式較單庫單應(yīng)用模式多了CDN、云存儲(chǔ)OSS(七牛剃氧、又拍敏储、S3等相似)。一個(gè)典型的應(yīng)用流程(以用戶上傳朋鞍、查看圖片需求為例)如下:

  1. 上傳的時(shí)候已添,用戶A選擇本地機(jī)器上的一張圖片P上傳
  2. 程序會(huì)把這個(gè)圖片P上傳到云存儲(chǔ)OSS上面,并將該圖片的URL返回
  3. 程序把這個(gè)URL字符串存儲(chǔ)在數(shù)據(jù)庫中滥酥,上傳完成更舞。
  4. 查看的時(shí)候,程序從數(shù)據(jù)庫得到該圖片的URL
  5. 程序通過DNS查詢這個(gè)URL的圖片服務(wù)器地址
  6. 智能DNS解析這個(gè)URL坎吻,得到與用戶最近的服務(wù)器(或集群)的地址B
  7. 接下來把服務(wù)器B上的圖片返回給程序
  8. 程序顯示圖片缆蝉,查看完成。

由上可知瘦真,這個(gè)模式的關(guān)鍵是智能DNS刊头,它能夠解析出離用戶最近的那個(gè)服務(wù)器。運(yùn)行原理大致為:根據(jù)請求者的IP得到請求地點(diǎn)B诸尽,然后通過計(jì)算或者配置得到與B最近或通訊時(shí)間最短的服務(wù)器C原杂,然后把C的IP地址返回給請求者。這種模式的優(yōu)缺點(diǎn)如下:

  • 優(yōu)點(diǎn):資源下載非衬快穿肄、無需過多的開發(fā)與配置,同時(shí)也減輕了后端服務(wù)器對資源的存儲(chǔ)壓力际看,減少帶寬的使用咸产。
  • 缺點(diǎn):目前來說OSS,CDN的售價(jià)還是稍微有些貴(雖然已經(jīng)降價(jià)好幾次了)仲闽,只適用于中小規(guī)模的應(yīng)用脑溢,另外,還有一些壞鄰居(你懂的)蔼囊。由于網(wǎng)絡(luò)傳輸?shù)难舆t焚志、CDN的同步策略等,會(huì)有一些一致性畏鼓、更新速度慢方面的問題酱酬。

本次分享的上篇到此結(jié)束,接下來中篇將介紹以下三種模式:查詢分離模式云矫、微服務(wù)模式膳沽、多級緩存模式,敬請期待让禀!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挑社,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子巡揍,更是在濱河造成了極大的恐慌痛阻,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腮敌,死亡現(xiàn)場離奇詭異阱当,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)糜工,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門弊添,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人捌木,你說我怎么就攤上這事油坝。” “怎么了刨裆?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵澈圈,是天一觀的道長。 經(jīng)常有香客問我崔拥,道長极舔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任链瓦,我火速辦了婚禮拆魏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慈俯。我一直安慰自己渤刃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布贴膘。 她就那樣靜靜地躺著卖子,像睡著了一般。 火紅的嫁衣襯著肌膚如雪刑峡。 梳的紋絲不亂的頭發(fā)上洋闽,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天玄柠,我揣著相機(jī)與錄音,去河邊找鬼诫舅。 笑死羽利,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的刊懈。 我是一名探鬼主播这弧,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼虚汛!你這毒婦竟也來了匾浪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤卷哩,失蹤者是張志新(化名)和其女友劉穎蛋辈,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體殉疼,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梯浪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瓢娜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挂洛。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖眠砾,靈堂內(nèi)的尸體忽然破棺而出虏劲,到底是詐尸還是另有隱情,我是刑警寧澤褒颈,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布柒巫,位于F島的核電站,受9級特大地震影響谷丸,放射性物質(zhì)發(fā)生泄漏堡掏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一刨疼、第九天 我趴在偏房一處隱蔽的房頂上張望泉唁。 院中可真熱鬧,春花似錦揩慕、人聲如沸亭畜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拴鸵。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間劲藐,已是汗流浹背八堡。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留聘芜,地道東北人秕重。 一個(gè)月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像厉膀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子二拐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容