代码之家  ›  专栏  ›  技术社区  ›  Eng.Fouad

用于组广播的JMS体系结构

  •  1
  • Eng.Fouad  · 技术社区  · 12 年前

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

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

    此外,我正在考虑在消费后保留这些信息。我决定让每条消息在一小时后过期,每个成员都应该检查数据库中他错过的每条消息。但是,如何在消息过期时启动操作?

    1 回复  |  直到 12 年前
        1
  •  1
  •   Neeraj Krishna    12 年前

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

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

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

    通常情况下,将数据持久化到数据库,而不是消息本身。因此,您可以持久化到数据库,然后创建要传递的消息。