小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

必備,前臺(tái)與后臺(tái)分離的架構(gòu)實(shí)踐

 漢無(wú)為 2018-02-13

如果你經(jīng)歷過(guò)創(chuàng)業(yè),經(jīng)歷過(guò)快速迭代業(yè)務(wù),經(jīng)歷過(guò)用戶量不斷上漲,經(jīng)歷過(guò)訪問(wèn)并發(fā)越來(lái)越大,你一定會(huì)遇到以下系統(tǒng)問(wèn)題:

  • 用戶訪問(wèn)頁(yè)面越來(lái)越

  • 系統(tǒng)性能下降,數(shù)據(jù)庫(kù)扛不住,連接數(shù)經(jīng)常打滿,最終數(shù)據(jù)庫(kù)掛掉,重啟后又快速掛掉

  • 改了一個(gè)小地方,另外一個(gè)看似不相干的地方卻掛了,嚴(yán)重耦合

 

如果你沒(méi)有經(jīng)歷過(guò),很可能是:

  • 沒(méi)到這一步項(xiàng)目就死了

  • 身在所謂的大公司,用著所謂先進(jìn)的架構(gòu)體系

 

創(chuàng)業(yè)初期遇到上述痛點(diǎn),很容易想到“三個(gè)分離”的架構(gòu)優(yōu)化方案:

 

一、業(yè)務(wù)場(chǎng)景介紹

虛擬一個(gè)類似于“安居客”租房買房的業(yè)務(wù)場(chǎng)景,這個(gè)業(yè)務(wù)的數(shù)據(jù)有兩大來(lái)源

  • 用戶發(fā)布的數(shù)據(jù)

  • 爬蟲從競(jìng)對(duì)抓取來(lái)的數(shù)據(jù)

 

這個(gè)業(yè)務(wù)對(duì)應(yīng)的系統(tǒng)有兩類使用者

  • 普通用戶,瀏覽與發(fā)布數(shù)據(jù),俗稱“前臺(tái)用戶”

  • 后臺(tái)用戶,運(yùn)營(yíng)與管理數(shù)據(jù),俗稱“后臺(tái)用戶”

 

在一個(gè)創(chuàng)業(yè)公司,為了快速迭代,系統(tǒng)架構(gòu)如上:

  • web層:前臺(tái)web,后臺(tái)web

  • 任務(wù)層:抓取數(shù)據(jù)

  • 數(shù)據(jù)層:存儲(chǔ)數(shù)據(jù)

 

二、數(shù)據(jù)耦合的問(wèn)題

系統(tǒng)兩類數(shù)據(jù)源,一類是用戶發(fā)布的數(shù)據(jù),一類是爬蟲抓取的數(shù)據(jù),兩類數(shù)據(jù)的特點(diǎn)不一樣

  • 自有數(shù)據(jù)相對(duì)結(jié)構(gòu)化,變化少

  • 抓取數(shù)據(jù)源很多,數(shù)據(jù)結(jié)構(gòu)變化快

 

如果將自有數(shù)據(jù)和抓取數(shù)據(jù)耦合在一個(gè)庫(kù)里,經(jīng)常出現(xiàn)的情況是:

  • -> 抓取數(shù)據(jù)結(jié)構(gòu)變化

  • -> 需要修改數(shù)據(jù)結(jié)構(gòu)

  • -> 影響前臺(tái)用戶展現(xiàn)

  • -> 經(jīng)常被動(dòng)修改前臺(tái)用戶展現(xiàn)邏輯,配合抓取升級(jí)

如果經(jīng)歷過(guò)這個(gè)過(guò)程,其中的痛不欲生,是誰(shuí)都不愿意再次回憶起的。

 

優(yōu)化思路前臺(tái)展現(xiàn)數(shù)據(jù),后臺(tái)抓取數(shù)據(jù)分離,解耦。

如上圖所示:

  • 前臺(tái)展現(xiàn)的穩(wěn)定數(shù)據(jù),庫(kù)獨(dú)立

  • 后臺(tái)抓取的多變數(shù)據(jù),庫(kù)獨(dú)立

  • 任務(wù)層新增一個(gè)異步轉(zhuǎn)換的任務(wù)

 

如此這般:

  • 頻繁變化的抓取程序,以及抓取的異構(gòu)數(shù)據(jù)存儲(chǔ),解耦

  • 前臺(tái)數(shù)據(jù)與web都不需要被動(dòng)配合升級(jí)

  • 即使出現(xiàn)問(wèn)題,前臺(tái)用戶的發(fā)布與展現(xiàn)都不影響

 

三、系統(tǒng)耦合的問(wèn)題

上面解決了不同數(shù)據(jù)源寫入的耦合問(wèn)題,再來(lái)看看前臺(tái)與后臺(tái)用戶訪問(wèn)的耦合問(wèn)題。

 

用戶側(cè),前臺(tái)訪問(wèn)的特點(diǎn)是:

  • 訪問(wèn)模式有限

  • 訪問(wèn)量較大,DAU不達(dá)到百萬(wàn)都不好意思說(shuō)是互聯(lián)網(wǎng)C端產(chǎn)品

  • 對(duì)訪問(wèn)時(shí)延敏感,用戶如果訪問(wèn)慢,立馬就流失了

  • 對(duì)服務(wù)可用性要求高,系統(tǒng)經(jīng)常用不了,用戶還會(huì)再來(lái)么

  • 對(duì)數(shù)據(jù)一致性的要求高,關(guān)乎用戶體驗(yàn)的事情就是大事

 

運(yùn)營(yíng)側(cè),后臺(tái)訪問(wèn)的特點(diǎn)是:

  • 訪問(wèn)模式多種多樣,運(yùn)營(yíng)銷售各種奇形怪狀的,大批量分頁(yè)的,查詢需求

  • 用戶量小,訪問(wèn)量小

  • 訪問(wèn)延時(shí)不這么敏感,大批量分頁(yè),幾十秒能出結(jié)果,也能接受

  • 對(duì)可用性能容忍,系統(tǒng)掛了,10分鐘之內(nèi)重啟能回復(fù),也能接受

  • 對(duì)一致性的要求始終,晚個(gè)30秒的數(shù)據(jù),也能接受

 

前臺(tái)和后臺(tái)的模式與訪問(wèn)需求都不一樣,但是,如果前臺(tái)與后臺(tái)混用同一套服務(wù)和結(jié)構(gòu)化數(shù)據(jù),會(huì)導(dǎo)致:

  • 后臺(tái)的低性能訪問(wèn),對(duì)前臺(tái)用戶產(chǎn)生巨大的影響,本質(zhì)還是耦合

  • 隨著數(shù)據(jù)量變大,為了保證前臺(tái)用戶的時(shí)延,質(zhì)量,做一些類似與分庫(kù)分表的升級(jí),數(shù)據(jù)庫(kù)一旦變化,可能很多后臺(tái)的需求難以滿足

 

優(yōu)化思路冗余數(shù)據(jù),前臺(tái)與后臺(tái)服務(wù)與數(shù)據(jù)分離,解耦。

如上圖所示:

  • 前臺(tái)和后臺(tái)獨(dú)立服務(wù)與數(shù)據(jù),解耦

  • 如果出現(xiàn)問(wèn)題,相互不影響

  • 通過(guò)不同的技術(shù)方案,在不同容忍度,業(yè)務(wù)對(duì)系統(tǒng)要求不同的情況下,可以使用不同的技術(shù)棧來(lái)滿足各自的需求,如上圖,后臺(tái)使用ES或者h(yuǎn)ive在進(jìn)行數(shù)據(jù)存儲(chǔ),用以滿足“售各種奇形怪狀的,大批量分頁(yè)的,查詢需求”

 

四、總結(jié)

創(chuàng)業(yè)初期,快速實(shí)施架構(gòu)優(yōu)化,提升性能的“三大分離”優(yōu)化利器:

  • 動(dòng)靜分離:能夠100倍以上的提升靜態(tài)頁(yè)面/資源的訪問(wèn)速度

  • 讀寫分離:能夠快速的線性擴(kuò)充數(shù)據(jù)庫(kù)的讀性能

  • 前后分離:前臺(tái)與后臺(tái)的數(shù)據(jù)與訪問(wèn)分離

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多