JMS主题在队列侦听器中接收

时间:2015-10-17 14:13:38

标签: java jms activemq

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

问候。

1 个答案:

答案 0 :(得分:0)

因此,如果您发布到某个主题,则需要使用队列中的消息。我假设您使用ActiveMQ,因为您添加了该标记。

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

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

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

示例主题名称:

  • VirtualTopic.GameScores

示例队列名称:

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