当前位置: 首页 > 知识库问答 >
问题:

多播队列中具有多个客户端的AMQ地址

尉迟浩思
2023-03-14

我的查询是针对产品Red Hat AMQ7.x(我使用的是7.2),它基于Apache ActiveMQ Artemis和一个使用AMQP协议连接到队列的.NET客户机。

Artemis的一篇文章讨论了单播(点对点)、多播(发布-订阅)以及这些寻址的组合:https://activemq.apache.org/Artemis/docs/2.0.0/address-model.html

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

  • 具有pub-sub通信模型,发布者发布到组播地址。
  • 有许多队列可以根据发布的消息执行操作,例如一个队列用于“followupjob”,另一个队列用于“mailercomponent”。
  • 有X个使用者-“MailerComponent”连接到一个队列来分配负载,以便传递到该队列的消息以循环方式在X个使用者之间分配。

后面的一节描述了这样一个配置:https://activemq.apache.org/artemis/docs/2.0.0/address-model.html#configuring-a-shared-durable-subscription-queue-with-up-to-10-concurrent-consumers它似乎满足了我的需要,但我想仔细检查一下,因为上面的解释没有涵盖这个场景。

共有1个答案

姚善
2023-03-14

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

 类似资料:
  • 此问题是关于在中使用AMQP消费消息。网文档建议使用amqpnetlite:https://access.redhat.com/documentation/en-us/red_hat_amq/7.0/html-single/using_the_amq_.net_client/index 使用AMQPNetLite订阅地址时,地址和队列将自动创建。不过,自动创建的队列总是“单播”。我无法自动创建 多

  • 我实现了一个相当简单的服务器,可以处理多个客户端,我首先接受这样的客户端 从我所读到的内容来看,似乎通常会为每个客户端创建一个新线程,但如果有更简单的方法,我真的不认为有必要解决这个问题。我只需要能够在服务器和客户端之间发送和接收消息。 有没有简单的方法 监听传入消息 确定消息来自哪个客户端 解析消息等。 都在一个循环中,而不为每个客户端创建单独的线程?

  • 问题内容: 我有一个带有HornetQ的JBoss-6服务器和一个队列: 有一个不同的消费者(在不同的机器)连接到这个队列中,但只有一个 单一的 消费者是活动的时间。如果我关闭此使用者,则消息将立即由其他使用者之一处理。 由于我的消息需要一些耗时的处理,因此我希望多个使用者同时处理其唯一消息。 我记得在早期版本的JBoss中也有类似的情况,该设置可以正常工作。在Jboss-6中,消息传递系统运行良

  • 问题内容: 我正在为任务做游戏。我有一个用Java设置的服务器和多客户端,我们正在使用MVC。我需要有一个客户端将其名称发送到服务器,然后当有两个玩家出现时,我需要将这两个名称以及他们的玩家编号(玩家1或玩家2)发送回客户端。我不知道如何分辨信息来自哪个线程或信息被发送到哪个线程,因此并非所有玩家都认为自己是玩家之一。谢谢。 问题答案: 在这里,我与您分享了一个不错的 聊天程序 ,其中包含一台服务

  • 问题内容: RMI是否自己处理多个客户端?即 是否可以同时使用多个客户端的服务器功能? 如果没有,我该怎么做? 如果是,它如何工作?每次 调用 都会创建一个新线程吗?如果一个客户端阻止了该功能,那么下一个客户端会发生什么?等等 问题答案: 是 这个怎么运作?每次调用都会创建一个新线程吗?如果一个客户端阻止了该功能,那么下一个客户端会发生什么?等等 它为每个客户端连接创建一个线程。 如果一个客户端调

  • 我最近开始学习Spring和spring-amqp,所以这个问题可能看起来很基本,所以请原谅我。 null 或者有一种方法可以Spring加载所有我的队列配置类,然后只使用如下所示的对象: 那么,如何在不执行每次的情况下获取确切队列的amqpTemplate呢? 每次请求到达我的服务时都做新的AnnotationConfigApplicationContext有什么害处?[我想为每个请求创建一个新