首页 文章

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

提问于
浏览
10

enter image description here

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

2 回答

  • 2
    • 您可以将多个工作人员添加到队列中

    • 可以有多个绑定到交换的队列 .

    在RabbitMQ中, 生产环境 者总是将消息发送到交换 . 所以,在你的情况下,我希望只有一次交换就足够了 . 如果您想在消费者方面进行负载 balancer ,则可以使用上述两个选项 .

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

  • 0

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

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

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

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

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

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

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

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

相关问题