2012-07-06 168 views
8

enter image description here如何实现单消费的多队列模型的RabbitMQ

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

+0

查看[入门](http://www.rabbitmq.com/getstarted.html)教程。当我第一次看到RabbitMQ时,我发现他们的教程并且帮助确实很好。具体来说,请查看[Topics](http://www.rabbitmq.com/tutorials/tutorial-five-python.html)部分 - 例如,您可以基于路由密钥订阅多个队列。 – AdaTheDev 2012-07-06 07:20:50

回答

0

的RabbitMQ有一个非常灵活的模式,这使得各种各样的路由方案发生。

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

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

  • 但对于一些无太大繁重的工作。我可以让单个消费者订阅他们的消息。
  • 是的,你也可以这样做。与上段相同的过程。只是不附加多个消费过程。

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

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

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

    相关问题