我对JMS有疑问。我一直在查看一些博客,其中显示了队列监听器如何接收发送主题消息。甚至可能,据我所知,只有客户订阅特定主题才能收到发布的消息。
问候。
答案 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匹配的任何已创建队列。
示例主题名称:
示例队列名称: