簡體   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