使用Web服务传输大型负载是个不好的主意吗?

20

了解,使用REST的POST或GET方式发送数据的数量基本上没有限制。虽然我没有使用过REST或Web服务,但似乎大多数服务都涉及传输有限量的数据。如果您想要传输1-5MB的数据(双向),那么使用Web服务是否是一个不好的选择呢?

更新:我们考虑通过REST服务连接的应用程序是内部应用程序。我们可以选择其他连接选项(例如:RMI)。


6
别忘了考虑压缩——尤其是在发送大型XML/文本文件时。一个800MB的XML文件可以使用gzip压缩到约30MB左右。 - Gandalf
2个回答

11

使用REST传输1-5MB的数据集并不算太大。限制因素可能是内存。根据生成XML的方式,如果服务上有高流量,则可能会耗尽服务器资源。

如果您正在使用流式XML生成,则内存不会成为太大的问题。创建DOM树然后输出它将更加消耗内存。

但是,即使您的DOM树占用原始XML的10倍内存,您也需要40个并发连接才能填满2GB的服务器内存。因此,在您的情况下可能不是一个问题。

客户端内存问题的可能性较小,但在任何正常计算机上反序列化5MB的XML转储都不应该是问题。


5

只要您提供某种进度反馈,1-5 MB就可以了。 Webservices在HTTP上运行,在处理较大数据集的开销方面还算可以,真正的问题在于XML。 通常情况下,XML会给序列化数据的大小增加巨大的开销。 对于较大的数据集,我建议考虑使用JSONHessian:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接