Frage

Ich brauche Teile unserer Anwendung des Netzwerkverkehrs für die Leistung zu komprimieren. Ich nehme an, dies bedeutet, dass ich von einigen der neueren Algorithmen wie bzip2 entfernt bleiben müssen, was ich denke, ich gehört habe, ist langsamer.

War es hilfreich?

Lösung

Sie können mit Deflater / Inflater , die gebaut wird in das JDK. Darüber hinaus gibt es GZIPInputStream und GZIPOutputStream, aber es hängt wirklich von Ihrem genauen Einsatz.

Edit:

Reading weitere Kommentare sieht es aus wie das Netzwerk taffic HTTP ist. Je nach Server, hat es wahrscheinlich Unterstützung für die Kompression (vor allem mit deflate / gzip). Das Problem wird dann auf dem Client. Wenn der Client ein Browser unterstützt es wahrscheinlich schon es. Wenn Ihr Kunde ein Web Service-Client oder eine http Client überprüfen Sie die Dokumentation für das Paket zu sehen, ob es unterstützt wird.

Es sieht aus wie jakarta-commons Httpclient kann es erforderlich sein, um manuell die Kompression zu tun. Um dies zu ermöglichen auf der Clientseite müssen Sie etwas tun, wie

.addRequestHeader("Accept-Encoding","gzip,deflate");

Andere Tipps

Wenn der Netzwerkverkehr über HTTP wird, die meisten von den verschiedenen Web-Server / Servlet-Container für verhandelte das Zuziehen unterstützen, zum Beispiel mod_deflate für Apache.

Ihre Kompressionsalgorithmus hängt davon ab, was Ihr zu optimieren versuchen, und wie viel Bandbreite Sie zur Verfügung haben.

Wenn Sie auf einem gigibit LAN, fast jedem Komprimierungsalgorithmus wird Ihr Programm nach unten nur ein wenig verlangsamen. Wenn Ihr ein WAN oder Internet-Verbindung über, können Sie es sich leisten ein bisschen mehr Kompression zu tun. Wenn Sie auf eine Wählverbindung verbunden ist, sollten Sie so viel, wie es absolut möglich komprimieren.

Wenn dies ein WAN ist, können Sie Hardware-Lösungen wie Riverbed sind effektiver, da sie über Arbeit ein Bereich des Verkehrs, und erfordert keine Änderungen an Software.

Ich habe einen Testfall, der die relative Druckdifferenz zeigt zwischen Deflate, gefiltert, BZip2 und lzma . Schließen Sie einfach in einer Probe Ihrer Daten, und testen Sie die zeitliche Abstimmung zwischen zwei Maschinen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top