在线拉链有多贵?

时间:2013-04-17 18:15:37

标签: tomcat zip

我在服务器上有一个必须下载到移动设备的文件存储库。服务器上的文件在下载到设备后可以在服务器上更新;在后续连接中,只需将修改后的文件下载到设备中。

我的选择是提前准备拉链或准备好它们。为了提前创建它们,我必须提前为所有以前版本的存储库创建一个zip。为了准备它,我可以找出需要下载哪些文件并随时压缩它们。

我认为决定取决于准备这样一个拉链的成本有多高。

我的问题是:

  • 动态创建拉链有多贵?可能有数以千计的移动设备;应该可以缓存准备好的zip文件,但我还想考虑每个连接单独压缩的成本。这背后的目的是避免在服务器上存储历史数据

  • 除了动态拉链的成本外,还有其他我应该考虑的参数吗?

服务器在嵌入式tomcat进程中运行。

2 个答案:

答案 0 :(得分:1)

网络操作期间的即时压缩(如在SSH / SFTP,SSL / TLS,HTTP(S)等中使用)不仅不会降低传输速度,还会显着增加传输速度!所以尽可能欢迎压缩。

现在,您可以压缩发送到通道的数据,也可以压缩文件并发送压缩文件。发送压缩ZIP的问题在于,在大多数情况下(流式ZIP压缩库很少见,但它们确实存在IIRC)你无法在打包时传输ZIP文件 - 你需要在响应之前等待打包完成请求。如果存档很大(几十兆字节或更大),这可能会产生问题。好处是您可以将文件打包一次并将其保存在缓存中很长一段时间(例如一周或一个月)。

答案 1 :(得分:0)

我建议你看一下this presentation from Google中的第13张幻灯片。

他们使用zippy这是一个有点自定义的zip实现,但重点很明确:压缩比发送数据便宜得多。是的,你仍然需要发送文件,因此小文件的节省量更小,但大部分时间拉链都会有所回报。