2016-10-20 59 views
1

我有一个应用程序,其中一个消息(具体的相关ID)被放置在一个有四个订阅者的主题中。当放置消息时,它被4个订阅者使用,具有相同的相关ID到队列(reply = 4messages)。现在我怀疑,当消息有重复相关ID。消费者在搜索带有相关ID的消息时如何知道消息要消费?具有相同JMS相关性的重复消息ID

+0

有趣的场景。所有用户处理相同消息并提供回复的原因是什么?每个用户是否以不同方式处理消息? – Shashi

+0

不,他们不会以不同的方式处理这些消息。他们以相同的方式处理它(这是我发布此问题的问题)。不确定,为什么它被写入以广播到某个主题。 – priya

+0

看起来想法是在多个订阅者之间进行负载均衡,其中只有一个订阅者会处理该消息并作出响应。 – Shashi

回答

1

重复的JMSCorrelationIDs没有固有的问题。对响应感兴趣的消费者通常使用选择器创建消费者(即,JMSCorrelationID ='ID-XXX ...')。该使用者将使用指定的相关ID匹配包含消息的所有消息。

如果您需要分别处理四个响应中的每一个,则需要定义一个惯例,其中自定义消息属性确定哪些消息来自哪个原始主题订阅者。

+0

感谢马特的答复。但我观察到,只有四个消息中的一个正在被消耗。其他3个队列永远在队列中。它是FCFS消息消息的方式吗? – priya

+0

由于所有用户都在回复,回复队列中将有四个回复。正在处理回复消息的应用程序正在处理第一个回复并将其他人排除在队列中。 – Shashi

+0

是的Shashi,我从我的应用程序中观察到,我只是想知道是否有任何技术酒吧提到这个实现。 – priya