ServiceComb框架相比于SpringMvc在处理MultipartFile表单文件有什么优化
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 28/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- À l'abandon
- Domaine
- api, backend, performance
Piste de recherche
Commencez par comparer les deux points d’entrée nommés dans l’issue : MultipartStreamItemInputStream.findSeparator de Tomcat et HttpPostMultipartRequestDecoder.findMultipartDelimiter de Netty. Examinez les éléments du flame graph et le chemin d’upload de MultipartFile afin de déterminer si ServiceComb ajoute une optimisation ou si la différence est imputable aux serveurs sous-jacents. La tâche est terminée lorsque la cause ainsi que toute optimisation ou modification de configuration prise en charge sont documentées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
代码本来使用了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的原因
- Langage dominant
- Java
- Étoiles
- 1.9k
- Forks
- 813
- Merge moyen
- 8 j 23 h
- PR mergées (30 j)
- 1
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/servicecomb-java-chassis
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
apache/servicecomb-java-chassis#5153 · 1 commentaire ·
-
[QUESTION] - 请发布3.x的最新版本 Ouvertequestion
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x? Ouverteenhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
apache/servicecomb-java-chassis#5145 ·
-
2.x bug
apache/servicecomb-java-chassis#5141 · 1 personne assignée ·
Toutes les issues de apache/servicecomb-java-chassis
Issues similaires
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Ouvertearea/plugin
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Add canonical URLs and a sitemap Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
apache/rocketmq-dashboard#5064 ·