ServiceComb框架相比于SpringMvc在处理MultipartFile表单文件有什么优化
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 28/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Área
- api, backend, performance
Línea de trabajo
Comienza comparando los dos puntos de entrada mencionados en el issue: MultipartStreamItemInputStream.findSeparator de Tomcat y HttpPostMultipartRequestDecoder.findMultipartDelimiter de Netty. Revisa la evidencia del flame graph y la ruta de subida de MultipartFile para determinar si ServiceComb añade una optimización o si la diferencia es atribuible a los servidores subyacentes. Se considera completado cuando se documentan la causa y cualquier optimización o cambio de configuración compatible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
代码本来使用了ServiceComb版本2.8.6,切换为SpringMVC 版本5.3.31后,发现有一个上传文件的接口效率下降了
业务代码如下
@ResponseBody
@PostMapping(value = "/uploadFile", produces = MediaType.MULTIPART_FORM_DATA)
public Response upload1File(@NotNull MultipartFile file, HttpServletRequest request) {
try (InputStream inputStream = file.getInputStream();) {
// 具体业务
}
}
分析了火焰图,发现使用了MVC框架后,主要在这部分消耗比较多时间
[40]48.31% 9,101 self: 0.02% 3 orglapache/tomcat/util/http/fileupload/MultipartStreamSItemInputStream.makeAvailable
.. [41]30.95% 5,830 self 0.02% 3 org/apache/tomcat/util/http/fileupload/MultipartStreamSItemInputStream.findSeparator
[42]30.93% 5,827 self: 30.93% 5,827 org/apache/tomcat/util/http/fileupload/MultipartStream.findSeparator
serviceComb 处理表单的方法
io.netty.handler.codec.http.multipart.HttpPostMultipartRequestDecoder#findMultipartDelimiter
想问下ServiceComb在对于MultipartFile文件接口有没有做什么优化,还是说可能只是底层一个是tomcat,一个是netty的原因
- Lenguaje dominante
- Java
- Estrellas
- 1.9k
- Forks
- 813
- Merge medio
- 8 d 23 h
- PR fusionados (30 d)
- 1
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/servicecomb-java-chassis
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
apache/servicecomb-java-chassis#5153 · 1 comentario ·
-
[QUESTION] - 请发布3.x的最新版本 Abiertoquestion
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x? Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
apache/servicecomb-java-chassis#5145 ·
-
2.x bug
apache/servicecomb-java-chassis#5141 · 1 asignado ·
Todos los issues de apache/servicecomb-java-chassis
Issues similares
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Abiertoarea/plugin
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Add canonical URLs and a sitemap Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
apache/rocketmq-dashboard#5064 ·