问题 如何实施竞争的消费者解决方案?


作为练习,我试图找到一个实现竞争消费者的例子。

许多生产者 - > MSMQueue < - 竞争消费者

到目前为止,我没有找到任何关于如何实现这一目标的文档。我第一次尝试弄清楚如何在MassTransit或NServiceBus中实现如何在多个间接层中失败。

任何帮助将不胜感激。


8138
2018-01-31 04:30


起源



答案:


使用MassTransit和MSMQ,您可以使用 分销商 零件。

请注意,如果您使用MassTransit 的RabbitMQ 您可以实现竞争的消费者方案,而不是MSMQ  使用分发服务器,只需为所有使用者设置相同的队列名称即可。如果您可以在MSMQ和RabbitMQ之间进行选择,那么我会选择RabbitMQ,因为您可以获得更好的管理工具和SSL加密,并且它也可以很好地与防火墙配合使用。

对此进行了一些讨论 MassTransit Google网上论坛论坛


13
2018-01-31 09:15



作为编写经销商的人,我第二次使用RabbitMQ。我们每天通过分销商提供数百万条消息,但RabbitMQ使这一切变得更加容易。您不能使用相同的队列来读取MSMQ,每个消费者都需要它自己的队列,但分发器组件负责分配工作负载。 - Travis
谢谢,我来看看RabbitMQ。特拉维斯分销商的机制是什么?在输入队列中充当1个单一消费者,并使用控制队列按工作人员可用性调度工作? - ruslander
@ruslander - 正确,这实际上是经销商的工作方式。 - David Boike


答案:


使用MassTransit和MSMQ,您可以使用 分销商 零件。

请注意,如果您使用MassTransit 的RabbitMQ 您可以实现竞争的消费者方案,而不是MSMQ  使用分发服务器,只需为所有使用者设置相同的队列名称即可。如果您可以在MSMQ和RabbitMQ之间进行选择,那么我会选择RabbitMQ,因为您可以获得更好的管理工具和SSL加密,并且它也可以很好地与防火墙配合使用。

对此进行了一些讨论 MassTransit Google网上论坛论坛


13
2018-01-31 09:15



作为编写经销商的人,我第二次使用RabbitMQ。我们每天通过分销商提供数百万条消息,但RabbitMQ使这一切变得更加容易。您不能使用相同的队列来读取MSMQ,每个消费者都需要它自己的队列,但分发器组件负责分配工作负载。 - Travis
谢谢,我来看看RabbitMQ。特拉维斯分销商的机制是什么?在输入队列中充当1个单一消费者,并使用控制队列按工作人员可用性调度工作? - ruslander
@ruslander - 正确,这实际上是经销商的工作方式。 - David Boike