【问题标题】:JMS topic receive in a Queue listenerJMS 主题在队列侦听器中接收
【发布时间】:2015-10-20 01:08:33
【问题描述】:

我有一个关于 JMS 的问题。我一直在查看一些博客,其中显示了队列侦听器如何接收发送主题消息。甚至有可能,据我所知,只有订阅特定主题的客户端才能收到发布的消息。

问候。

【问题讨论】:

  • 您的问题目前尚不清楚,您需要提供更多详细信息,可能还需要提供一些代码示例来阐明您的问题。

标签: java jms activemq


【解决方案1】:

因此,如果您发布到主题,您希望使用队列中的消息。我假设您使用 ActiveMQ,因为您添加了该标签。

这种设置的主要原因是能够对消费者的多个集群节点进行负载平衡。在 JMS 1.x 中,普通的持久订阅不允许这样做。我猜你的情况类似。

  • 在通用 JMS 中,这是不可能的。但是,在 JMS 2.0 中,持久订阅可以进行负载平衡,因此工作起来有点像队列。并非所有 JMS 代理都实现 JMS 2.0。 ActiveMQ 没有实现 JMS 2.0,但 ActiveMQ Artemis 实现了。

  • ActiveMQ 通过一个称为虚拟主题的概念来实现这一点。使用Virtual Topics,您可以为主题指定一个特定名称,例如 VirtualTopic.MyTopic 会将所有已发布的消息转发到与 Consumer.MyConsumer.VirtualTopic.MyTopic 匹配的任何已创建队列。

示例主题名称:

  • VirtualTopic.GameScores

队列名称示例:

  • Consumer.ScoreBoardService.VirtualTopic.GameScores
  • Consumer.BettingService.VirtualTopic.GameScores

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    相关资源
    最近更新 更多