更新時間:2020-03-17 10:10:25 來源:動力節點 瀏覽2715次
今天小編分享一下最近一個項目的部分架構設計,主要還是根據對業務的理解來構思。主要是對部分功能的設計,涉及到消息中間件、內外網隔離、故障隔離等相關的技巧。
項目需求
項目是進行社交媒體的發布,需要對接微信、微博、以及海外的Facebook、Twitter、Youtube等平臺,通過定制的編輯器對稿件進行編輯,然后一鍵發布到所對應的平臺上。
業務流程
編輯器:可對所有類型的稿件進行編輯,它會對不同類型的稿件進行不同的條件限制以滿足最終的發布要求。
中間層:收到編輯器的簽發請求開始對數據進行封裝,依據不同平臺的數據格式進行處理。
發布層:對中間層封裝好的數據發布到對應的平臺。
本文主以獲取微博官方表情的接口為例,發布層定時調用微博服務器進行表情的獲取,對獲取到的數據寫入文件再上傳到nas并通過mq通知中間層,目前的mq是備用方案,中間層也可以定時從nas中讀取文件并更新數據到數據庫,編輯器則直接調用中間層進行數據獲取,由于一些別的因素此處并未引入緩存。這就是獲取微博官方表情接口的一個大概流程,下面會結合構架設計圖來說明為什么要這么設計。
架構設計
設計初衷
出于安全考慮發布層需要部署到接口機上直接跟外網進行交互,而發布層部署在內網服務器,發布層調用接口獲取到的數據先寫入nas服務器的文件中,然后中間層去定時讀取nas中文件進行讀取并把數據入庫。nas是可以供內外網訪問的,這樣的話如果有人對發布層進行惡意攻擊的話也不會影響到中間層和其他的服務,從而進行內外網隔離并起到一個故障隔離的作用。
細心的小伙伴可能發現發布層和中間層既然已經加入了mq為什么中間層還有再定時去讀取nas中的文件呢?
假設在單機情況下mq掛了的話中間層就無法取到最新的數據,假如發布層的接口是每隔1一個小時調用一次,然而中間層一個小時之內并沒有收到數據的話那么他就主動的去讀取nas中的文件,當然具體的實現中還需要進行相關的處理。
總結
對設計來說沒有什么是最好的,所有的設計都需要在不斷的實踐中進行調整。所以大家在工作中不要以為設計是多么難做的事情,總要去不斷的進行嘗試,如果說碰到一個還不錯的公司給你這種機會的話一定不要錯過,也不要怕出什么問題,既然有人信任你那你就一定要去嘗試,慢慢的等你在面試過程中說起這種經歷的時候你就會知道你曾經的努力都沒有白費。
以上就是動力節點Java培訓機構小編介紹的“Java架構師視頻下載:Java架構設計”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習