2012-01-17 44 views
1

我該如何實現這個模型: 許多用戶使用許多主題的消息。有沒有選擇器在JMS中實現多對多關係的方法?

事實上,消息將來自這些主題的事件,這些事件將通過長輪詢顯示給最終用戶。

訂閱可能會重疊。

正如你所理解的,可以有很多訂閱,所以我不認爲選擇器是最好的方式來做到這一點。另外我懷疑,爲每個用戶的每次訂閱創建消費者不會隨着用戶數量的增長而很好地擴展。

我使用ActiveMQ 5

感謝您的答案。

+0

我會把事件存儲在某個地方,只是通知用戶他有新的事件,然後他會從商店裏得到它們。這樣可以最大限度地減少隊列中的消息大小。 – 2012-01-17 13:42:37

+0

這是如何設計的。你知道它的任何問題,或者想象它可能是一個問題? – 2012-01-17 13:44:40

+0

出租車你使用'臨時主題' - 每個用戶1?這不應該有縮放問題。 – anubhava 2012-01-17 13:53:44

回答

2

使用主題和ActiveMQ的通配符爲您的訂閱 http://activemq.apache.org/wildcards.html

例如:一個目的地爲每個消息類型,每個用戶subscibes到他希望無論是使用通配符或通過提供目的地的列表中的所有題目(中的ActiveMQ的ressource適配器接受創建一個時)

session.createTopic("first;second;any.children.>;only.*.those") 

有關這個主題的消費者得到的所有消息的主題分號分隔的目的地列表: 第一 第二 任何兒童(及其任何兒童) only..those

+0

非常感謝。不知道在創建主題時我可以使用多個主題名稱 – Pilgrim 2012-01-19 17:22:32

相關問題