本文介绍了具有多个客户端的AMQ地址到多播队列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的查询是针对产品Red Hat AMQ 7.X(我使用的是7.2),该产品基于Apache ActiveMQ Artemis和一个使用AMQP协议连接到队列的.Net客户端.

My query is for the product Red Hat AMQ 7.X (and I am using 7.2), which is based on Apache ActiveMQ Artemis and a .Net client connecting to the queue using AMQP protocol.

Artemis的文章讨论了单播(点对点),多播(发布-订阅)以及以下寻址方式的组合: https://activemq.apache.org/artemis/docs/2.0.0/address-model.html

An Artemis article discusses unicast (point-to-point), multicast (publish-subscribe) and a combination of these addressing: https://activemq.apache.org/artemis/docs/2.0.0/address-model.html

它没有详细说明两个使用者在一个地址下连接到同一多播队列的情况.我们的要求是

It does not detail the case of two consumers connecting to the same multicast queue under an address. Our requirement is to

  • 具有pub-sub通讯模型,发布者发布到多播地址.
  • 有许多队列可以根据已发布的消息采取操作,例如,一个队列用于"FollowupJob",另一个队列用于"MailerComponent".
  • 具有X个使用者-"MailerComponent"连接到一个队列以分配负载,以便传递给该队列的消息以循环方式在X使用者之间分配.

后面的部分介绍了这种配置: https://activemq.apache.org/artemis/docs/2.0.0/address-model.html#configuring-a-shared多达10个并发消费者的耐用预订队列这似乎满足了我的需要,但是我想仔细检查一下,因为上面的解释没有涵盖这种情况.

A later section describes such a configuration: https://activemq.apache.org/artemis/docs/2.0.0/address-model.html#configuring-a-shared-durable-subscription-queue-with-up-to-10-concurrent-consumersIt seems to meet my need, but I wanted to double-check as the explanation above did not cover this scenario.

推荐答案

除非将max-consumers设置为1exclusive设置为true,否则任何队列(无论是多播还是任意广播)都可以支持多个使用者.

Any queue (whether multicast or anycast) can support multiple consumers unless you've set max-consumers to 1 or exclusive to true.

这篇关于具有多个客户端的AMQ地址到多播队列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 23:07