13

在此处输入图像描述

我发现这张图片与我的商业模式非常相似。我需要将消息拆分到某个队列。对于一些繁重的工作。我可以为他们添加更多的工作线程。但对于一些没有太多繁重的工作。我可以让单个消费者订阅他们的消息。但是如何在rabbitMQ中做到这一点。通过他们的文件。我刚刚发现了单队列多消费者模型。

4

2 回答 2

2
  1. 您可以将多个工作人员添加到队列中
  2. 可以有多个队列绑定到一个交换。

在 RabbitMQ 中,生产者总是将消息发送到交换器。所以,在你的情况下,我希望只有一次交换就足够了。如果你想在消费者端进行负载均衡,你有上面说的两个选项。

你也可以阅读我的文章: https ://techietweak.wordpress.com/2015/08/14/rabbitmq-a-cloud-based-message-orientation-middleware/

于 2015-08-19T09:49:12.847 回答
0

RabbitMQ 有一个非常灵活的模型,可以实现各种各样的路由场景。

  1. 我需要将消息拆分到某个队列。对于一些繁重的工作。我可以为他们添加更多的工作线程。

是的,这是通过直接交换支持的。使用与队列名称相同的路由键发布消息。为方便起见,假设您使用完全限定的对象名称(例如MyApp.Objects.DataTypeOne)。您需要做的就是为这个队列订阅多个消费进程,RabbitMQ 将使用循环方法进行负载平衡。

  1. 但对于一些没有太多繁重的工作。我可以让单个消费者订阅他们的消息。

是的,你也可以这样做。与上一段相同的过程。只是不要附加多个消费进程。

我发现这张图片与我的商业模式非常相似。

该图不是很有用,因为它缺少有关正在发布的消息类型的信息。从这个意义上说,它只是一个互连图。有趣的行是将队列连接到交换器的行,因为这是您通过Queue Bindings在 RabbitMQ 中指定的。您也可以将交换相互绑定,但这比我们可能需要做的要远一些。

作为 RabbitMQ/AMQP 系统的用户,图表上的所有其他内容都完全在您的控制之下。您可以创建任意数量的发布者,并拥有任意数量的消费进程,每个进程从任意数量的队列中消费。没有硬性限制和快速限制,尽管您可能需要考虑一些实际方面来确保您的系统是可维护的。

于 2018-02-04T02:32:09.863 回答