由於某些系統導出頻率很高,而且數據量很大,要是同步導出不僅佔用當前系統的cpu、內存等硬件的資源,同時也會佔用網絡等資源,所以我們可以把導出的功能做爲異步的方式,異步操作並起把文件放到文件服務器中,下載的文件直接從文件系統中導出。異步導出的方法方案很多,我主要說兩種:
一、針對不同的導出功能提供不同的接口
開發一個通用的job動態調用對應的接口,提供的接口我們可以使用restful、dubbo、springcloud、webservice等,只要定義一個規則即可,請求的參數當然需要事先保存到非關係數據庫或者關係數據庫中,也可以放到MQ中,看具體的情況具體的選擇,具體的可以參考下圖,把給前臺的後臺和提供導出數據的後臺分離開,達到硬件資源、網絡資源互不影響。
- 優點
- 功能細化,方便維護,功能清晰
- 部署到不同的機器,資源互不影響
- 缺點
- 需要定義一個規則,所有的接口按照這個規則開發
- 新建一個項目提供查詢接口,增加開發工作量