NServicebus + RabbitMQ和分销商

时间:2014-07-03 04:50:23

标签: nservicebus nservicebus-distributor

由于本地输入队列的硬性要求,NServiceBus Distributor / Worker模式对MSMQ非常有意义。

但RabbitMQ并非如此,我试图了解NServiceBus分销商与RabbitMQ的关联方式和时间。使用RabbitMQ,多个worker可以从同一个远程队列中读取。

实际场景类似于使用AWS自动缩放组来扩展指向高可用RabbitMQ群集的工作线程。现在完全避免使用分发器使得设置更容易构建,测试和提供。

思想?

2 个答案:

答案 0 :(得分:1)

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

所有经纪人式的运输也是如此,您可以使用竞争的消费者模式进行扩展。

答案 1 :(得分:0)

NServiceBus是一个优秀的系统,并且在大多数消息排队系统中都有奇迹,在这个系统中你没有集成的分发服务器(你在RabbitMQ中进行交换)。我们在公司使用NServiceBus。

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

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

然而......如果你有可能强加你可以使用的排队技术,那么我强烈建议你研究一下RabbitMQ和一个名为MassTransit的产品(开源)

http://masstransit-project.com/

MassTransit可以在两种模式下运行,并为您分配或模拟分发 - 但是我仍然对NServiceBus情有独钟,就像我们的资深开发人员一样。

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