XML数据传输的最大大小?

| 有没有人尝试过在xml中传递5GB的数据。是否需要传递大量数据的Web服务使用基于HTTP的XML来传递数据。 我期待在系统中进行更改以传递数据。如果我应该以XML格式传递5 GB的数据,我会感到困惑,因为我的主内存只有2 GB。 应用程序会中断吗? 谢谢     
已邀请:
XML只是一种标记语言/数据格式,没有任何固有的大小限制。您可以根据需要制作1000 GB的XML文件。 如果操纵5 GB XML文件(或任何其他类型的5 GB文件)的目的不是为处理大文件而设计的,则它们可能会损坏。通常,如果您只是将大文件上传到Web服务,则应该可以,因为几乎所有现代文件上传模块都将支持在接收到上传文件后将其缓存到磁盘,从而不会整个文件需要在内存中。但是,将文档放在服务器上后,解析文档可能会遇到一些问题,具体取决于您使用哪个库进行解析。您可能需要研究可用于Web服务/平台的流XML解析器的类型(甚至编写专门针对XML文档格式的解析器,因为这样您可以做出简化的假设,从而限制内存量在任何给定时间需要)。 我可以想象,大多数传递大量数据的Web服务都不会使用XML作为数据传输格式。带宽价格昂贵,并且高延迟或长上传时间可能会带来糟糕的用户体验。因此,我希望此类服务通常会使用优化的二进制格式。可以通过在发送XML文档之前对XML文档进行简单的gzip压缩来获得合理的近似值。     
我对大型XML文件有一些经验,但可能不是5GB。 如果这是使用XML的现有系统,那么在从XML更改为其他格式之前,请三思而后行,因为更改本身可能比其价值更大。压缩文件将大大有助于网络传输。压缩的XML文件可以与专有二进制格式一样有效。 您可能的瓶颈将是文件的解析和处理。如果XML“记录”彼此独立(例如,如果这是一长串xml类型),那么您应该能够使用流式XML解析器来避免将所有内容加载到内存中。还可以考虑使用“非验证”解析器(或关闭验证)来提高性能。 如果您可以在XSLT中进行任何文件处理,则可能会发现它比将整个文件解析为一个程序进行操作更好。 根据网络传输时间,请考虑使用可靠的网络传输,例如FTP或BitTorrent。如果HTTP失去连接,则可能必须重新开始。     
5gb似乎在Web服务上传输量很大,但是您可以压缩XML,这将大大减小XML的大小。 压缩XML指标。 或者,您是否可以使用Windows任务管理器或linux contrab作业(每晚压缩文件)> FTP \的文件作为夜间/每周计划任务的另一种方法呢?然后在另一端执行另一个计划任务,该任务将运行以导入数据。或可能有一个网页或Web服务用于触发导入在接收服务器上开始     

要回复问题请先登录注册