有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在两个spring boot应用程序之间传输大数据

我有两个spring引导服务名称A和B

  • 服务A接收一个多部分文件(大小巨大,大于100MB-1GB)
  • 服务A需要将文件传输到服务B(问题区域
  • 服务B对数据执行一些操作并返回服务A
  • 从A到B的调用使用RestTemplate发送

问题区域

  • 服务A不在内存中加载整个文件,而是从多部分InputStream中分块读取
  • 块被发送到B,而不是一个完整的流

是否可以将多部分的完整InputStream发送到服务B,以便服务A不加载文件,也不通过http/将文件分块。。。(任何其他方式)

(我解决这个问题的一个方法是在底层linux平台上使用fifo,服务A在管道上连续写入,服务B在读取)——如果可能的话,我想用http实现它

Background-我希望服务B控制他们想要多少块,而不是服务A。这是因为服务B执行的操作-服务B添加了一些额外的字节,以便在对下一个数据执行反向操作时,它可以看到这些额外的字节来理解应该读取多少块

更新GITHUB 我不知道我哪里弄错了?我粘贴了完整的项目-https://github.com/robin-carry/large-data-transfer

客户端/服务器上的主文件,其中所有逻辑位于/README下面。md解释了我尝试/失败的一切

client/src/main/java/com/lockdown/lazy/client/controller/UploadController。JAVA server/src/main/java/com/lockdown/lazy/server/controller/OpServiceController。爪哇


共 (2) 个答案

  1. # 2 楼答案

    你可以设计与组织的界面。springframework。网状物多部分。然后,将MultipartFile用作参数——在发送方将其用作外部客户端,并在接收方的控制器中实现