2011-04-17 44 views
0

有沒有人試過在XML中傳遞5GB的數據。需要通過http傳遞大量數據的Web服務使用XML傳遞數據。XML中數據傳輸的最大大小?

我期待在系統中進行更改以傳遞數據。如果我應該以XML格式傳遞5 GB數據的數據,我感到困惑,因爲我的主內存僅爲2GB。

應用程序是否會中斷?

感謝

+0

你的連接速度有多快? 5GB將需要_ages_轉移。 – SLaks 2011-04-17 02:02:47

+0

您是否正在從服務器發送或接收5 GB的數據?服務器運行的是什麼棧?你是從瀏覽器,還是通過其他客戶端或其他服務器執行此操作?請用更多信息更新您的問題,以便我們能更好地回答您。 XML對這個問題的影響很小(儘管我無法想象解析一個5GB的文檔) - 對於任何這種大小的數據,答案可能都是一樣的。 – Jason 2011-04-17 02:03:46

回答

2
  1. XML只是一種標記語言/數據格式,並且沒有任何固有的大小限制。如果需要,您可以製作一個1000 GB的XML文件。

  2. 操縱5 GB XML文件(或任何其他類型的5 GB文件)的東西可能會在被破壞,如果它們沒有被設計爲處理大文件大小。一般來說,如果您只是將大文件上傳到Web服務,那麼您應該沒問題,因爲幾乎所有現代文件上傳模塊都會支持在上載到磁盤時緩存上傳文件,以便整個文件不需要在記憶中。但是,如果您在服務器上解析文檔,您可能會遇到一些問題,具體取決於您使用哪個庫進行解析。您可能想要了解什麼類型的流式XML解析器可用於您的Web服務/平臺(或者甚至編寫專門針對您的XML文檔格式的解析器,因爲您可以進行簡化的假設,以便限制內存量在任何給定的時間需要)。

  3. 我會想象大多數通過大量數據的Web服務將而不是使用XML作爲數據傳輸格式。帶寬很昂貴,高延遲或較長的上傳時間可能會導致較差的用戶體驗。所以我希望這樣的服務更典型地使用優化的二進制格式。在您發送XML文檔之前,只需將gzip壓縮應用到XML文檔即可獲得合理的近似值。

0

5gb似乎是一個很大的數量可以通過Web服務進行傳輸,但是您可以壓縮XML,這應該大大縮小爲XML。

Compression XML metrics .

或者,你能做到像它呼嘯而過>跨越FTP的文件每晚/每週定期使用Windows任務管理器或Linux contrab工作任務不同的做法?然後在另一端有另一個運行時導入數據的計劃任務。或者可能有一個網頁或Web服務,用於觸發導入在接收服務器上啓動

1

我對大型XML文件有一些經驗,但可能不是5GB。

如果這是一個使用XML的現有系統,那麼在將XML從其他格式轉換爲其他格式之前應該認真思考,因爲更改本身可能比它的價值更麻煩。壓縮文件將大大有助於網絡傳輸。壓縮的XML文件可以與專有的二進制格式一樣高效。

您的可能瓶頸將是解析和處理文件。如果XML「記錄」彼此獨立(例如,如果這是一個很長的xml類型列表),那麼您應該能夠使用流XML解析器來避免將所有內容加載到內存中。另外考慮使用「非驗證」解析器(或關閉驗證)來提高性能。

如果您可以在XSLT中執行任何文件處理,那麼您可能會發現比將整個文件解析爲程序進行操作更好。

根據網絡傳輸時間,考慮使用可靠的網絡傳輸,如FTP或BitTorrent。如果HTTP丟失連接,則可能必須重新開始。