【问题标题】:NServicebus+RabbitMQ and DistributorNServicebus+RabbitMQ 和分发器
【发布时间】:2014-07-03 04:50:22
【问题描述】:

NServiceBus Distributor/Worker 模式非常适合 MSMQ,因为本地输入队列的硬性要求。

但 RabbitMQ 并非如此,我试图了解 NServiceBus 分发器如何以及何时与 RabbitMQ 相关。使用 RabbitMQ,多个工作人员可以从同一个远程队列中读取数据。

实际场景类似于使用 AWS 自动扩展组来扩展指向高可用 RabbitMQ 集群的工作人员。现在,完全避免分发器使设置的构建、测试和配置变得更加简单。

想法?

【问题讨论】:

    标签: nservicebus nservicebus-distributor


    【解决方案1】:

    由于 RabbitMQ 传输属于代理式总线,因此,在您的用例中,不使用分发器会更有意义。

    对于所有代理式传输也是如此,您可以使用竞争的消费者模式进行横向扩展。

    【讨论】:

      【解决方案2】:

      NServiceBus 是一个出色的系统,并且在大多数没有集成分发器的消息队列系统(在 RabbitMQ 中使用交换器)的情况下都能创造奇迹。我们公司使用 NServiceBus。

      Azure 队列和 MSMQ 是此类队列技术的完美示例。

      NServiceBus 在内部处理分发,因此为您重现此功能。

      但是...如果您有幸强制使用可以使用的排队技术,那么我强烈建议您研究 RabbitMQ 和名为 MassTransit 的产品(开源)

      http://masstransit-project.com/

      MassTransit 可以反过来在这两种模式下运行,并且可以为您委派或模拟分发 - 但是我仍然对 NServiceBus 情有独钟,我们这里的高级开发人员也是如此。

      每页... http://docs.particular.net/nservicebus/load-balancing-with-the-distributor 仅在使用 MSMQ 时使用分发器才有用 - 如果您不使用 MSMQ,则没有意义。 RabbitMQ 和其他传输将允许多个消费者访问同一个队列,而 MSMQ 不允许。简而言之,分发者将从主队列中获取消息并将它们分发到多个工作队列中,因为他们报告说他们已经完成了他们正在处理的任何事情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多