簡體   English   中英

在兩個 spring 啟動應用程序之間傳輸大數據

[英]Transmitting large data between two spring boot app

我有兩個 spring 引導服務名稱 A 和 B。

  • 服務 A 接收一個多部分文件(大小很大 > 100MB - 1GB)。
  • 服務 A 需要將文件傳輸到服務 B(問題區域
  • 服務 B 對數據執行一些操作並返回到服務 A。
  • 從 A 到 B 的調用是使用 RestTemplate 發送的。

問題領域

  • 服務 A 不會加載 memory 中的整個文件,而是從 Multipart InputStream 中分塊讀取。
  • 塊被發送到 B,而不是完整的 stream。

是否可以將多部分的完整 InputStream 發送到服務 B,以便服務 A 不會加載文件以及通過 http/...(任何其他方式)分塊文件

(我已經解決了在底層 linux 平台上使用 fifo 的一種方法,並且服務 A 正在 pipe 上連續寫入,而服務 B 正在讀取) - 如果可能的話,正在尋找某種方法來實現它與 Z80791B3AE7002CB88F8Z4FA。

背景- 我希望服務 B 控制他們想要多少塊而不是服務 A。這是因為服務 B 執行的操作 - 服務 B 添加了一些額外的字節,因此當對下一個數據執行反向操作時,它可以看到這些額外的字節以了解應該讀取多少塊。

GITHUB 的更新我不確定我在哪里弄錯了? 我粘貼了完整的項目 - https://github.com/robin-carry/large-data-transfer

所有邏輯都在下面的客戶端/服務器上的主要文件/README.md 解釋了我正在嘗試/未能做的所有事情......

客戶端/src/main/java/com/lockdown/lazy/client/controller/UploadController.java server/src/main/java/com/lockdown/lazy/server/controller/OpServiceController.java

Apache Http 客戶端文檔討論了請求/響應實體流- 看看這是否有助於解決您的場景。

您可以使用 org.springframework.web.multipart.MultipartFile 作為參數設計接口,然后將其用作發送方的 feign 客戶端,並在接收方的 controller 中實現它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM