Zuverlässige Daten dienen
-
19-09-2019 - |
Frage
Wie kann ich sicherstellen, dass meine Datei Portion ist zuverlässig und skalierbar? Wie viele parallele Anfrage kann damit umgehen?
ich über die Hardwarefähigkeit und Bandbreite denke.
Ich verfolge Streaming große Dateien in einem Java-Servlet
Lösung
Wenn das sind statische Dateien, link, nur um es direkt . Alle anständigen servletcontainers / appservers haben ein gut ausgebautes DefaultServlet
. Wenn diejenigen, sind statische Dateien befinden außerhalb die Webapplikation von wo aus man sie verbinden würde, dann können Sie auch nur den Stammordner dieser Dateien als einen anderen Kontext hinzufügen. Es ist unklar, welchen Server Sie verwenden, aber wenn es Tomcat waren, konnten Sie gerade ein neues <Context>
zu server.xml
hinzufügen:
<Context docBase="/path/to/static/files" path="/files" />
Auf diese Weise ist es zugänglich http://example.com/files/...
.
Wenn das ist dynamisch generierte Dateien oder Dateien aus einer Datenbank kommen, dann müssen Sie ein Servlet entwickeln, die die IO Arbeit erledigt effizient: das heißt nicht speichern unnötig die gesamten Daten im Speicher (zB in einem ByteArrayInputStream
oder byte[]
bevor sie emittieren an den Ausgang schreiben. Nur das Bytes sofort mit dem Ausgang, wie es kommt. Sie dies jene Beispiele für einen Grund fileservlet und eine erweiterte fileservlet nützlich (Lebensläufe und so weiter unterstützt).
Andere Tipps
Wenn Sie nur statische Dateien aus einem Dateisystem dienen, sind nur Apache verwenden -. Es wird dann etwas besser sein, Sie selbst schreiben werden