我正在設計微服務體系結構中的審閱分析平臺。在微服務之間共享巨大的數據
應用程序是像下面的作品;從電子商務站點-A(站點一)檢索爲Excel
- 所有產品意見文件
- 評論上傳到系統與Excel
- 分析代理可以列出所有的評論,編輯其中的一些,刪除或批准
- 分析代理可以導出網站的所有評論-a
- 基於自動正則表達式的檢查應用於每次上傳和編輯評論。
我有3個微服務。
- 點評:負責類似批准/拒絕評論CRUD操作以及操作方法。
- 驗證:負責制定和審覈應用驗證規則。
- 導出/導入:出口服務出口給定站點的名稱(如網站-A)
問題是在某些時候大文件,驗證服務需要獲得所有評論網站一,應用驗證規則並且如果有的話會產生錯誤。我知道共享數據庫模式和實體會破壞微服務架構。
一個可能的解決方案是
- 每當驗證服務需要一個現場審查,它要求網關,網關重定向請求評論服務和響應服用。
兩個這種方法的缺點可能是
- 驗證服務知道有關網關?它是否會帶來依賴性?
- 萬一我有一個網站的1b評論,通過休息請求獲得所有評論可能是一個問題。 (或沒有,我可以從驗證服務,使分頁請求的網關。)
那麼,什麼是分享微服務之間的巨大數據的最佳實踐,而不
- 共享實體
- 和dublicating的數據
我讀了很多關於使用消息隊列,但我認爲在我的情況下,使用消息隊列共享千兆字節的數據並不好。
編輯1:而不是共享實體,使用數據存儲與其餘API可以解決?假設我使用的是mongodb,而不是在微服務之間共享我的實體對象,我可以使用mongo的休息界面(http://restheart.org/)並儘可能查詢數據。
您可以嘗試企業集成模式。我不知道哪種模式可以解決確切的用例,但應該包含它們。 – k1133