消息模式问题

时间:2010-04-07 13:00:23

标签: design-patterns messaging rabbitmq tibco

进程A正在计算对象a1,a2,a3等的值,并将结果发送到中间件队列(RabbitMQ)。消费者阅读队列并进一步处理这些结果。 定期进程A必须发送这些值的快照,以便消费者可以进行其他一些计算。这些对象的值可能会独立更改。队列可能看起来像这样a1,a1,a2,a1,a2,a2,a3 ......消费者处理队列中的每个项目。快照必须包含所有对象,消费者将一次性处理所有对象的此消息。

所以需要有这样一个队列:a1,a1,a3,a2,a2,[snapshot,a1,a2,a3],a3,a1 ......问题是这些项目属于不同的类型:一种类型的对象,如a1,a2和其他快照。这意味着它们应该在不同的队列中处理,但在这种情况下存在竞争条件:消费者可能在处理快照之前处理对象。

是否有任何模式可以解决这个(非常常见的)问题?我们使用RabbitMQ进行消息排队。

1 个答案:

答案 0 :(得分:0)

每个使用者使用一个队列,并使用内容类型前缀来指示正在传递的消息类型。我认为AMQP消息中可能存在“类型”属性,但我从未使用它,因此我不知道它是否适用于此问题。

相关问题