我必须通过缓慢且不稳定的拨号调制解调器连接来保持单个相对较小的文件保持最新。
该文件是一个 XML,一开始大小为 15K,两个小时后则变为 500K。
这是单向复制。我目前的解决方案是每分钟下载一次整个文件。到目前为止,它在宽带连接下运行良好,但现在我必须在只有拨号连接的地方使用它。由于下载速度很慢,“实时数据”的幻觉就消失了。
我认为 rsync 可以让我免于开发专有的(且低效的)“仅增量”协议。我不知道 rsync 在这种特定情况下是否能提供真正的好处。
那么,问题是:rsync 协议是否适合 15K 到 500K 的单个文件?
答案1
在本例中不是。你最好使用类似差异xml仅发送文件之间的差异作为更新,并在目标机器上应用补丁。
答案2
好吧,我使用 rsync 完成了这个任务,而且我不得不说它运行良好。
它传输的数据非常少,我能够在窄带拨号连接下将更新频率缩短到 20 秒(是我们之前使用宽带的频率的三分之一!)。
更新 800kb 的 XML 现在需要下载 5kb + 上传 800 字节!
在没有更新更改的情况下检查版本需要下载不到 500 字节 + 上传不到 100 字节!(我在常规聊天会话中输入时传输了更多字节!)
比其他 diff 解决方案好得多,而且我不需要围绕它编写任何程序。(之前我们考虑添加推送机制来启动 rsync,但我们现在还不需要它。 20 秒是可以接受的,而且轮询非常轻量。)
加油,rsync!
PS:我没有尝试过 Git,但它可能也是一个很好的解决方案。