大量数据 - 发送它们的最佳方式是什么?
我们有这种情况:大量数据 - 发送它们的最佳方式是什么?
一个服务器,它包含这些数据需要的所需数据和客户端组件。
在服务器上存储2种类型的数据: - 一些资料 - 只是一对夫妇的字符串基本上 - 二进制数据
我们有越来越二进制数据的问题。双方都用Java编写的5,所以我们有几种方法....
Web服务是不是因为速度,内存等方面的最佳解决方案......
那么,你会选哪个?
我想错过低水平插座连接,如果可能的...
在此先感谢
维特克
我认为做大量数据的唯一方法将是与原始套接字的访问。
您将使用大多数其他方法在大文件上遇到Out of Memory问题。在Java中,套接字处理非常简单,它可以让你在不将整个文件加载到内存的情况下进行数据流处理(这是在没有你自己的缓冲的情况下在幕后发生的)。
使用此策略,我设法构建了一个允许任意大型文件传输(我使用7+ GB DVD映像测试系统)而不会触及内存问题的系统。
我已经试过转换二进制数据为Base64,然后通过发送过来SOAP调用,它适用于我。我不知道这是否是一个Web服务,但如果它确实如此,那么你几乎被套接字困住了。
:它还将与其他客户或供应商互操作对于大型数据,base64效率极低。如果需要Web服务,MTOM可能是更好的选择。 – Lamar 2009-01-02 02:12:18
您可能想看看protobuf,这是谷歌用来交换数据的图书馆。它非常高效和可扩展。在旁注中,永远不要低估满载1TB硬盘的旅行车的带宽!
非常真实。然而它遭受“最后一公里”的问题:USB连接将永远传输数据 – 2009-01-02 01:35:02
一些选项:
你可以使用RMI将隐藏插座层次的东西对你来说,也许gzip压缩的数据...但如果连接失败,也不会恢复为您服务。可能也会遇到内存问题。
只是HTTP数据与二进制MIME类型(也许再配置web服务器上的gzip)。类似的问题在简历上。
产卵像wget的(我认为这是可以做到的简历)
如果客户端已经拥有的数据(它以前的版本),rsync的将只复制变化
那么旧的,价格合理又强大的FTP呢?例如,您可以轻松地在服务器端组件中嵌入FTP服务器,然后编写FTP客户端。 FTP正是为此而诞生的(文件传输协议,不是吗?),而带有附件的SOAP并没有设计考虑到这些东西,并且可以执行得非常糟糕。 例如,你可以看看:
http://mina.apache.org/ftpserver/
但也有其他的实现在那里,阿帕奇米娜只是第一个我记得。
好运&问候
看看W3C标准MTOM将二进制数据作为SOAP服务的一部分进行传输。它作为一个二进制文件发送并且也可以作为缓冲区块发送是有效的。
我不知道正确的标签应该是什么使用,但“的”肯定不是其中之一...... – hop 2009-01-02 01:35:47