0

我的任务是通过 finatra 直接从磁盘向我们的客户发送一个文件而不加载到内存中(这些文件非常大)。以下是我的问题:

0) 如何在不将信息加载到内存的情况下与磁盘 i/o 进行交互?

1) 将文件输入流连接到 http 输出流时,实际上是否会将内存加载到 ram 中?

2) 我认为所有内容都必须加载到内存中才能使用、传输和发送。如何在不加载到内存的情况下将内容直接发送到网络端口?

3) 内存流是否会从磁盘到 cpu 寄存器,再到网络适配器缓冲区以供发送?如何确保这是没有加载 ram 的流程?

4) 是否可以在 Finatra 中执行此操作

4

1 回答 1

1

不幸的是,Finatra 1.6 不可能。流媒体似乎在 2.0 的路线图上,但没有关于其发布的官方消息。现在,Request => Response依赖于记忆的输入和输出。在 Finatra 中处理主体的最有效方法是将它们保留在其中,ChannelBuffers以便至少只有一个字节实例化。

于 2015-04-17T21:03:34.260 回答