2016-10-20 91 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