Java 如何在分布式环境中发送文件内容?

Java 如何在分布式环境中发送文件内容?,java,file,activemq,distributed,Java,File,Activemq,Distributed,我有以下情况: 两个Java应用程序使用ActiveMQ进行通信。它们使用发布者/订阅模型 一个应用程序有一些物理文件,另一个应用程序应该请求文件内容。发送文件的最佳方式是什么? 一个想法是在字节数组中读取内存中的文件,并序列化数组,然后在消息中发送文件内容。 你还有别的想法吗 提前感谢。您可以始终使用常规方式分发文件。我不建议使用传输整个文件的方式(电子邮件、复制、将文件封装在邮件中),但这取决于文件的使用情况。共享文件可能是最简单、最有效的解决方案。您还应该考虑,您将如何处理此文件。您想随机

我有以下情况:

两个Java应用程序使用ActiveMQ进行通信。它们使用发布者/订阅模型

一个应用程序有一些物理文件,另一个应用程序应该请求文件内容。发送文件的最佳方式是什么? 一个想法是在字节数组中读取内存中的文件,并序列化数组,然后在消息中发送文件内容。 你还有别的想法吗


提前感谢。

您可以始终使用常规方式分发文件。我不建议使用传输整个文件的方式(电子邮件、复制、将文件封装在邮件中),但这取决于文件的使用情况。共享文件可能是最简单、最有效的解决方案。您还应该考虑,您将如何处理此文件。您想随机访问它吗?你真的需要把它作为一个整体来传递吗

<>你也可以考虑使用。Hadoop是一个面向高度本地化数据的分布式系统框架。它还提供了一个分布式文件系统(HFS)


希望我能帮忙

取决于您的文件有多大?如果它们不是那么大,那么您可以将它们作为JMS消息传输

如果文件很大,可以使用带外文件。另请参见此链接:


另一个想法是让应用程序与NFS、sshfs、samba等共享文件系统(即共享创建物理文件的子树),这样就足够发送文件名了。还有一个想法是使用另一个协议在rabbitmq之外发送文件(比如在应用程序中构建ftp服务器)。这取决于文件的大小?如果它们不是那么大,那么您可以将它们作为JMS消息传输。如果文件很大,可以使用带外文件。也可以看到这个链接:@ClausIbsen你给了我一个好主意。你能把这个作为一个答案,这样我就可以给你充分的信任吗?@AntonKovalenko我想摆脱所有的限制,让应用程序共享文件系统。应单击以部署系统。关于文件的大小,这些文件不应该太大,但它们经常被创建和发送。我认为ftp服务器对我没有帮助。谢谢你的回答,系统必须关闭。我不能使用“常规方式”分发文件,因为该过程必须对用户透明且快速。另外,现在我可以发送消息(不是即时消息,而是从一个代理到另一个代理的数据),但我正在寻找一种更简单的发送文件的方法。关于Hadoop,谢谢你的建议,但在我的情况下,它的设置和空间可能比我的整个项目更大无论如何,我感谢你的建议。