我们有 2 个内存中的 Java 组件(一个数据网格和一个 olap 多维数据集)。
我们目前使用批处理工具来加载数据网格,当用户想要更新数据时,我们会动态创建批处理作业。我的想法是我们应该扩展我们的批处理工具,以便它还负责将数据加载到 olap 多维数据集中。在数据传输方面,数据网格应写出一个文件,将其复制到运行 olap 多维数据集的服务器,然后 olap 多维数据集应读取此文件。
我们的另一个选择是,当数据网格完成加载或应用更新时,它会向队列发送消息。然后,olap 多维数据集将读取此消息,并调用数据网格上的服务以拉取数据。我强烈反对此选项,因为它不是基于文件的,这意味着支持团队将难以理解它。
所以问题是,我们为什么要使用消息传递?
因为如果你编写自己的事务文件,你必须担心:
- 事务是否已写入文件
- 文件是否正确、完整或确实传输。
- 文件是否被完全读取,如果不是停止读取时的位置
以及有关实际媒体的各种可靠性问题。
消息传递系统为您完成所有这些工作。