我们有一个非常简单的应用程序,它从MQ读取消息,并将消息转换为某种不同的格式,然后将其发送到另一个MQ。该应用程序部署在Openshift环境中。因此,在任何给定时间,同一应用程序的多个示例将运行。我们在应用程序中不使用任何DB。
- 我们希望保持消息的顺序。* 基本上,在阅读消息时,它们以某种顺序出现在源MQ中(例如,A1-A2-A3-A4-A5),那么在转换后,它们在输出MQ中的顺序应该相同。
让我们假设事件A1发生了,然后是A2,然后是A3,然后是A4,然后是A5。事件A1和A3相互关联意味着具有某种关系。同一应用程序的多个示例正在专用队列上侦听这些事件。假设有5个应用程序示例正在运行,那么可能会出现这样的情况,即选择了A3事件的示例已经完成处理。而A1事件处理仍未完成。所以基本上我想确保A3处理的输出不应该被发送到输出队列,直到它的前一个事件A1成功完成并发送到输出队列。
有人能帮我解决这个问题吗?
2条答案
按热度按时间du7egjpx1#
IBM MQ具有用于将消息分组在一起的内置特性。我建议你看看Message Groups。
dwbf0jvd2#
当消费消息时,根据分类存储在文件中。当一个消息被消费时,根据分类决定一个组。更新文件。它可以通过第一种方式的第一个答案来完成,你必须在程序上指定一个消息的组ID,它将作为一个组来处理消息。