我的 Java 桌面客户端软件使用 JSON 与用 C 编写的遗留后端系统通信(服务器上有一个转换器)在现场批量部署时消耗了太多带宽。
在研究了压缩选项后,我得出结论,流行的 JSON 压缩工具不适合我的情况。它们似乎是基于跨网络传递数据库查询结果的场景,这不是我的情况。没有方便的行/列算法可用于轻松压缩。我们的数据更复杂。
所以我们开始使用压缩,Java 的 DeflaterOutputStream 和 InflaterInputStream(或者他们的 GZIP 和/或 ZIP 风格)。在 C 端,会有类似的东西,可能是通过 RedHat 提供的 zlib 库,我们的服务器在该库上运行。
在我步入一堆蠕虫之前,有经验的人能否告诉我 zlib 压缩和 Java 支持的压缩的兼容性如何?Java 压缩选项中的一种或另一种比另一种更好吗?比另一个更快?
顺便说一句,该协议是双向的。Server 和 Client 都使用 JSON 来编码消息,所以在我的场景中,双方都需要能够压缩和解压。提前致谢。