繁体   English   中英

如何在休息服务中提高文件 IO 性能

[英]How to improve file IO performance in a rest service

我手头的场景来自我的 spring boot rest 服务,从资源文件夹中读取一个 word doc 并将字节数组传递给客户端

我使用 FileInputStream 在内存中读取单词 doc,使用 Apache Common IO IOUtils 将输入流转换为字节数组,并将其放置在其余服务的响应正文中。

这里的问题是我总是在 memeirh 或服务请求中读取文件,这对运行服务的进程的本地内存有害。

我无法逐行读取文件并以这种方式将其返回给服务调用方,因为我需要将字节数组一起返回给调用方

我预见的另一个问题是文件的读取方式。 我想成为一个非阻塞 IO 而不是阻塞 IO。

想知道解决这个问题的有效方法是什么

每次请求进来时,您是否真的需要读取文件。

否则,您可以在服务器启动时读取文件,然后将文件保存在存储在 Spring Bean 中的内存中。 然后在每次通话时从那里获取它?

如果您不想每次都上传文件,最好在 init/postconstruct 阶段创建@Bean 您还可以向retrieve()方法添加一些功能,该方法通过调用File.lastModified()来检查和存储文件修改时间,以确定是否必须重新加载内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM