2014-02-20 123 views
0

我想构建一个广播系统。它由几个小组组成。每个组有一个用户可以向同一组的其他成员广播消息。什么是适合这种系统的JMS体系结构?用于组播的JMS体系结构

我应该使用持久订阅的主题吗?我不太了解发布/订阅消息的风格,主题是否有多个订阅?如果是这样,则每个订阅代表广播系统中的一个组。如果不是,我应该使用队列,而每条消息都有一个指定组的头部,然后使用JMS选择器过滤消息,以便每个成员只接收来自组中的消息?

此外,我想消费后坚持消息。我决定让每封邮件在一小时后过期,每个成员都应该检查数据库中是否有错过的每封邮件。但是,如何在消息到期时触发一个动作?

回答

0

可以使用主题...主题可以有多个订阅者。每个组可以使用不同的主题。用户可以将消息发送到该主题,并且所有订户都可以收到该消息。

只有当订户可以在一段时间内脱机并且用户的消息不应该丢失时,才需要持久订户。

队列在一对多的情况下并不适合。但是,如果您有一组预定义的接收器,您可以为每个接收器使用一个队列,并将消息路由到该接收器。但是这是将消息路由到接收者队列的开销。您建议的JMS选择器想法可行,但对于一个队列,只有一个客户端可以收到消息。在分发给所有对该主题感兴趣的客户的主题中。

通常人们会将数据保存到数据库而不是消息本身。所以你可以坚持数据库,然后创建交付信息。