2016-04-28 83 views
0

我是微服務世界的新手。從微服務返回大數據的最快機制

我的微服務必須返回一個大的數據(10-20 MB的球場)。 返回的數據中包含大2D陣列(「圖像」)和小的結構化數據可以很容易地使用JSON表示。

重要:客戶端和服務器都在同一臺機器上

我有幾個選項將數據返回:

  1. 編碼數據的字節數組,並在體發送。
  2. 編碼只有「圖片」,以二進制和「多部分」後 JSON +二進制圖像1 + ... +二進制imagen畫質。
  3. 將數據寫入服務器資源(內存?) 並將該url發送給客戶端。客戶端將使用 幾個GET命令獲取數據。
  4. 將數據寫入Redis DB並向客戶端發送 Redis地址和數據密鑰。客戶端將讀取Redis讀數很少的數據。

什麼是最快和行業最知名的方法發回的結果?

+0

你只能控制微服務?這確實聞起來像一個IPC問題...... – DaSourcerer

+0

也控制客戶端。當然,這是一個ipc域的問題。 –

+0

然後我只需要問,爲什麼你會打擾TCP/IP和HTTP的開銷。共享內存或臨時文件是要走的路。 – DaSourcerer

回答

1

基於我們在軟件架構(> 20歲)的經驗,應該有2層不同的API:

  • API的元數據 — API將提供有關圖片和圖片鏈接信息。
  • 的圖像
  • API下載 —單獨的API下載圖像。考慮到網絡延遲,它還可以支持批量下載(作爲存檔)。這可以利用像Redis DB或類似的內存數據庫來提供更快的響應時間。