Java 当您可以使用文件和批处理工具时,为什么人们使用消息传递?

Java 当您可以使用文件和批处理工具时,为什么人们使用消息传递?,java,architecture,batch-processing,messaging,in-memory-database,Java,Architecture,Batch Processing,Messaging,In Memory Database,我们有两个内存中的java组件(一个数据网格和一个olap多维数据集) 我们目前使用批处理工具加载数据网格,当用户想要更新数据时,我们动态创建批处理作业。我的想法是,我们应该扩展批处理工具,以便它也负责将数据加载到olap多维数据集中。在数据传输方面,数据网格应该写出一个文件,将其复制到olap多维数据集运行的服务器上,然后olap多维数据集应该读取该文件 我们拥有的另一个选项是,当数据网格完成加载或应用更新时,它会向队列发送消息。olap多维数据集随后将读取此消息,并调用数据网格上的服务以将数

我们有两个内存中的java组件(一个数据网格和一个olap多维数据集)

我们目前使用批处理工具加载数据网格,当用户想要更新数据时,我们动态创建批处理作业。我的想法是,我们应该扩展批处理工具,以便它也负责将数据加载到olap多维数据集中。在数据传输方面,数据网格应该写出一个文件,将其复制到olap多维数据集运行的服务器上,然后olap多维数据集应该读取该文件

我们拥有的另一个选项是,当数据网格完成加载或应用更新时,它会向队列发送消息。olap多维数据集随后将读取此消息,并调用数据网格上的服务以将数据拉入。我强烈反对这个选项,因为它不是基于文件的,这意味着支持团队将很难理解它


所以问题是,我们为什么要使用消息传递?

因为如果您编写自己的事务文件,您必须担心:

  • 事务是否已写入文件
  • 文件是否正确、完整或完全传输
  • 文件是否被完全读取,如果没有,停止读取时您在哪里
以及与实际媒体有关的各种可靠性问题


消息系统为您提供了所有这些功能。

因为如果您编写自己的事务文件,您必须担心:

  • 事务是否已写入文件
  • 文件是否正确、完整或完全传输
  • 文件是否被完全读取,如果没有,停止读取时您在哪里
以及与实际媒体有关的各种可靠性问题


消息系统为您提供了所有这些功能。

因为如果您编写自己的事务文件,您必须担心:

  • 事务是否已写入文件
  • 文件是否正确、完整或完全传输
  • 文件是否被完全读取,如果没有,停止读取时您在哪里
以及与实际媒体有关的各种可靠性问题


消息系统为您提供了所有这些功能。

因为如果您编写自己的事务文件,您必须担心:

  • 事务是否已写入文件
  • 文件是否正确、完整或完全传输
  • 文件是否被完全读取,如果没有,停止读取时您在哪里
以及与实际媒体有关的各种可靠性问题


消息系统为您提供了所有这些功能。

基于文件的消息需要您仔细管理文件生命周期(包括崩溃恢复)。听起来你已经很舒服了。队列解决方案处理持久化数据的细节,有些解决方案提供参与事务的能力。好的队列解决方案提供了查看队列中的内容的工具,就像您可以查看磁盘上的文件一样。基于文件的消息传递要求您仔细管理文件生命周期(包括崩溃恢复)。听起来你已经很舒服了。队列解决方案处理持久化数据的细节,有些解决方案提供参与事务的能力。好的队列解决方案提供了查看队列中的内容的工具,就像您可以查看磁盘上的文件一样。基于文件的消息传递要求您仔细管理文件生命周期(包括崩溃恢复)。听起来你已经很舒服了。队列解决方案处理持久化数据的细节,有些解决方案提供参与事务的能力。好的队列解决方案提供了查看队列中的内容的工具,就像您可以查看磁盘上的文件一样。基于文件的消息传递要求您仔细管理文件生命周期(包括崩溃恢复)。听起来你已经很舒服了。队列解决方案处理持久化数据的细节,有些解决方案提供参与事务的能力。好的队列解决方案提供了查看队列中的内容的工具,就像您可以查看磁盘上的文件一样。