【问题标题】:Pass Input stream over HTTP in mule using HTTP connector使用 HTTP 连接器在 mule 中通过 HTTP 传递输入流
【发布时间】:2016-08-29 15:06:06
【问题描述】:

我需要通过 HTTP 传递输入流。我正在使用 mule 中的文件连接器读取文件并将输入流传递给 HTTP 连接器。文件大小将很大,从 250 mb 到 ~ 10 gb。我正在尝试使用 700 mb 的文件,但 HTTP 连接器内存不足。我认为连接器正在将所有内容加载到内存中。为什么不将其作为流传递。让我知道最好的方法是什么。

【问题讨论】:

  • 欢迎来到 StackOverflow。请查看stackoverflow.com/help/how-to-ask 以了解如何最有效地在此站点上提出问题。您的问题不包含任何代码,也没有提供足够的信息来提供特定的答案。请提供更多背景信息。
  • 希望我能正确理解您的问题。

标签: file http streaming mule mule-studio


【解决方案1】:

我相信在不影响性能的情况下进行设计更多的是架构师级别的决定。如果要进行巨大的文件传输,则在 GB 级别更喜欢文件到文件传输协议。 在您的情况下,您已经从 FTP 读取文件,对其进行处理并再次上传到 FTP 或 AmazonS3 或 SFTP。确保您在上传时压缩文件。

1.使用Java组件编写自定义代码进行HTTP调用,并使用分段上传概念。 (或者) 2.在HTTP连接器Mule中拆分文件并部分推送。 (或)

3. 在 Mule 中使用 Batch 组件(超快)- 通常 Batch 会在几秒钟内处理大量数据,这里您可以分部分拆分并推送到 HTTP(使用 Batch 大小(方便)。

在选择第一个选项之前,请尝试使用批处理组件参考:https://docs.mulesoft.com/mule-user-guide/v/3.6/batch-processing。它会帮助你。批处理是专门为处理大负载而设计的。注意:确保您需要一次性推送所有内容或拆分并执行。

【讨论】:

  • 我要发送数据的地方没有SFTP服务器。如果我拆分文件并通过 http 发送它,因为 HTTP 连接器最终会加载到内存中,我会遇到内存问题
【解决方案2】:

请分享您的配置 xml。 确保您已在文件连接器中启用流式传输。 如果未启用,整个文件内容将被加载到您的虚拟机中,这会杀死虚拟机

干杯!

【讨论】:

    猜你喜欢
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多