一次架構(gòu)優(yōu)化紀(jì)實(shí)

時(shí)間:2017.12.14
地點(diǎn):北京
事件:優(yōu)化CMS*異步計(jì)算消息架構(gòu)
歷時(shí):1小時(shí)

先上架構(gòu)圖,看圖說話。


171214refactorcmsarch.png

某CMS,使用django搭建。

最最開始,有那么一些比較重的計(jì)算,比如分詞算法等,直接在django ORM的model save中hard coded,隨著CMS Admin使用量的增加,web響應(yīng)速度受到顯著拖累。

于是考慮將較重的計(jì)算異步化。最初的架構(gòu)是,先使用獨(dú)立的MQ服務(wù)將異步計(jì)算單元隔離出來,然后把異步計(jì)算消息發(fā)送封裝成微服務(wù),最后讓Django signal調(diào)用微服務(wù)來觸發(fā)。如圖中灰色虛線所示。

優(yōu)化后的架構(gòu),改為django signal直接向MQ發(fā)送異步計(jì)算消息,不再繞路微服務(wù)層。如圖中紅色實(shí)線所示。

架構(gòu)優(yōu)化后,整個(gè)系統(tǒng)的異步計(jì)算業(yè)務(wù)回路更短,故障率更低,穩(wěn)定性更高。

[*] CMS:Content Management System,內(nèi)容管理系統(tǒng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容