如何实现rabbitMQ的单用户多队列模型

时间:2012-07-06 07:13:10

标签: rabbitmq

enter image description here

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

2 个答案:

答案 0 :(得分:2)

  1. 您可以将多个工作人员添加到队列
  2. 可以有多个队列绑定到交换。
  3. 在RabbitMQ中,制作人总是将消息发送给交换。所以,在你的情况下,我希望只有一次交换就足够了。如果您想在消费者方面进行负载平衡,则可以使用上述两个选项。

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

答案 1 :(得分:0)

RabbitMQ具有非常灵活的模型,可以实现各种路由方案。

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

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

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

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

  

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

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

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