如何在系统之间传递大数据

How to pass large data between systems

我有以 XML 格式存储的定价数据,每小时生成一次。如果存储为 XML,它的大小大约为 100MB。我需要将这些数据发送到我的主系统以便进行处理。以后也有可能每1m发送一次这个数据大小

发送这些数据的最佳方式是什么?到目前为止,我的想法是:

- It would be too large to send as JSON to a POST endpoint
- Possible to send it as XML and store it on my server

有没有更好的方法来做到这一点?

假设您在 linux 并且数据已经写入文件系统的某处,为什么不在 crontab 中做一个简单的 scprsync条目?

您可能希望在发送前进行压缩,或者在协议中启用压缩。

如果您的数据只是轻微变化,您也可以尝试发送针对先前版本(使用 diff 生成)的补丁而不是整个数据,然后在另一端重新生成。

正如 Michael Anderson 在回答中提到的,您可以只发送每个系统中的更改差异。

实现此目的的一种方法是引入协议,例如 git。

使用 git,您可以:

  1. 在第一个系统上生成数据并推送到私有仓库
  2. 让您的第二个系统提取更改

这比每次都拉取整个数据副本要高效得多。

它也会被压缩,并通过加密通道(取决于 git server/service)