Http檔案上傳框架選擇

2021-08-30 21:23:37 字數 1517 閱讀 6413

候選項

jetty + apache fileupload

jdk自帶的httpserver + 自行解析

******

jetty + jetty 

multipartfilter

備註:tomcat過於臃腫,不考慮。

測試情況

兩台機器,一台使用httpclient模擬客戶端上傳檔案,一台作為http伺服器。

兩台機器均為8核、8g記憶體。

耗時

以32..6m

的檔案測試框架|

效能|併發數1 20

100200

jetty + apache fileupload

5.5s

13.7s

111s

207s

jdk自帶的httpserver

5.8s

78s390 --

******

5.2s

24s130s

330s

jetty+ jetty multipartfilter

5.5s

26s112s

203s

單執行緒情況下, 效能均差不多,在多執行緒情況下

jdk自帶的httpserver和******排程能力不足。

cpu

佔用率

框架200

個併發時

cpu佔用率

jetty + apache fileupload

130%

jdkserver

350%

******

120%

jetty+ jetty multipartfilter

130%

客戶端:8核全負載,httpclient太耗資源了。

伺服器端:jdkserver比較耗資源,其他的都穩定在130%左右

功能拓展性:

拓展性主要考慮:

接受到上傳請求時的一些處理。比如:當請求到server時,如果合法則獲取輸入流進行上傳;如果不合法,則直接返回處理結果。

****** : 檔案全部上傳到臨時資料夾後才能進行業務處理。極度不符合

multipartfilter: 使用過濾器處理缺點有二:一是業務邏輯不集中,部分在於servlet中,部分在於過濾器中;二是改寫

multipartfilter並進行封裝的難度稍大。

jdk自帶server: 符合條件。但需要自己解析http輸入流,並進行封裝。難度較大。

apache fileupload:符合條件,對http請求的封裝很棒。

apache fileupload > jdkserver > 

multipartfilter

> ******

最終選擇:jetty + apache fileupload

Http上傳檔案

http上傳檔案 設定引數 string boundary datetime.now.ticks.tostring x 隨機分隔線 request.contenttype multipart form data charset utf 8 boundary boundary byte itembou...

框架 檔案上傳類

created by jetbrains phpstorm.user stu date 14 3 4 time 下午4 56 to change this template use file settings file templates.final class upload return iamg...

上傳檔案 Spring框架

上傳檔案 spring框架 1 建立web頁面 檔案上傳的html頁面中需要表單,且method post和enctype multipart form data 使用的控制項是 method post action upload.do enctype multipart form data nam...