ServiceComb框架相比于SpringMvc在处理MultipartFile表单文件有什么优化
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 28/100
- Issue-Typ
- Bug
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Bereich
- api, backend, performance
Rechercherichtung
Beginne mit dem Vergleich der beiden im Issue genannten Einstiegspunkte: Tomcats MultipartStreamItemInputStream.findSeparator und Nettys HttpPostMultipartRequestDecoder.findMultipartDelimiter. Prüfe die Flame-Graph-Evidenz und den MultipartFile-Upload-Pfad, um festzustellen, ob ServiceComb eine Optimierung hinzufügt oder ob der Unterschied auf die zugrunde liegenden Server zurückzuführen ist. Als abgeschlossen gilt die Aufgabe, wenn die Ursache sowie jede unterstützte Optimierung oder Konfigurationsänderung dokumentiert sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
代码本来使用了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的原因
- Vorherrschende Sprache
- Java
- Sterne
- 1.9k
- Forks
- 813
- Ø Merge
- 8 T. 23 Std.
- Gemergte PRs (30 T.)
- 1
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/servicecomb-java-chassis
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
apache/servicecomb-java-chassis#5153 · 1 Kommentar ·
-
[QUESTION] - 请发布3.x的最新版本 Offenquestion
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x? Offenenhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
apache/servicecomb-java-chassis#5145 ·
-
2.x bug
apache/servicecomb-java-chassis#5141 · 1 zugewiesene Person ·
Alle Issues in apache/servicecomb-java-chassis
Ähnliche Issues
-
area-deployment area-integrations triage:bot-seen
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 86/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
apache/flink-agents#1156 ·
-
[source-shopify] FAILED bulk operation without partialDataUrl is silently treated as successful Offenarea/connectors autoteam community connectors/source/shopify needs-triage team/use type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100