2012-01-17 43 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

相关问题