MassTransit 何时路由新消息?

When does MassTransit route new messages?

更新:有问题的默认队列是我正在研究的 MassTransit 实现的一部分,使问题变得毫无意义。


据我了解 MassTransit,当您发布消息时,消息首先进入发布应用程序的默认队列。

只要消费者注册了该消息类型,MassTransit 会立即将消息路由到适当的消息队列,还是等到该消费者的工作线程可用?

我想我真正想知道的是:默认队列是瓶颈吗?

我将 MassTransit 2.7.0 与 MSMQ 一起使用。

首先,您说的是哪个版本的 MassTransit?其次,您使用的是什么交通工具?

如果您使用的是 RabbitMQ,消息会立即发布到交换器。绑定到目标交换器的任何队列都将立即收到消息的副本。如果没有队列绑定,消息会像呼出的气一样蒸发到大气中。

创建接收端点后,MassTransit 会将端点队列绑定到与消费的消息类型相匹配的交换。例如,如果 MessageA 的消费者连接到接收端点,则会在 MyNamespace.MessageA 和为接收端点指定的 input_queue 之间创建绑定。还创建了一个与队列同名的中间交换器,所有绑定都通过该匹配交换器。

This makes it easy to wire tap a queue, sending a copy of every message delivered to the queue to another queue for auditing, diagnosis, etc.

如果您使用的是 MSMQ,那就是另一回事了,因为 MassTransit 3 不支持 MSMQ 而结束(并且在 MSMQ 上发布并不是一个好故事,尽管它适用于 send/receive).