proyecto librerias descargar bibliotecas biblioteca java compression

librerias - ¿Qué es una buena biblioteca de compresión para Java?



librerias de java netbeans (3)

Si el tráfico de la red pasa por HTTP, la mayoría de los diversos servidores web / contenedores de servlets admiten la compresión negociada, por ejemplo, mod_deflate para Apache.

Necesito comprimir partes del tráfico de red de nuestra aplicación para el rendimiento. Supongo que esto significa que necesito mantenerme alejado de algunos de los algoritmos más nuevos como bzip2, que creo que he escuchado es más lento.


Su algoritmo de compresión depende de lo que trate de optimizar y de cuánto ancho de banda tenga disponible.

Si tienes una LAN gigibit, casi cualquier algoritmo de compresión ralentizará tu programa un poco. Si te conectas a través de una WAN o de Internet, puedes permitirte un poco más de compresión. Si se conectó a un acceso telefónico, debe comprimir todo lo que sea absolutamente posible.

Si se trata de una WAN, puede encontrar que las soluciones de hardware como Riverbed son más efectivas, ya que funcionan en un rango de tráfico, y no requieren ningún cambio en el software.

Tengo un caso de prueba que muestra la diferencia de compresión relativa entre Deflate, Filtered, BZip2 y lzma . Simplemente conecte una muestra de sus datos y pruebe el tiempo entre dos máquinas.


Puede usar Deflater / Inflater que está integrado en el JDK. También hay GZIPInputStream y GZIPOutputStream, pero realmente depende de tu uso exacto.

Editar:

Al leer comentarios adicionales, parece que el taffic de la red es HTTP. Dependiendo del servidor, probablemente tenga soporte para compresión (especialmente con desinflar / gzip). El problema entonces se convierte en el cliente. Si el cliente es un navegador, probablemente ya lo admita. Si su cliente es un cliente de servicios web o un cliente http, consulte la documentación de ese paquete para ver si es compatible.

Parece que httpclient de jakarta-commons puede requerir que hagas la compresión manualmente. Para habilitar esto en el lado del cliente necesitarás hacer algo como

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