2

我有一个通过 MSMQ 运行的 MassTransit ServiceBus。看来通过总线发送的第一条消息没有到达,但后续消息呢?

在发送消息之前,是否需要在队列或总线上执行一些初始化?

4

1 回答 1

3

这取决于一些设置,系统需要设置多长时间才能正确路由。如果只有第一条消息未能在正确的位置结束,那么订阅数据可能还没有传播到任何地方。http://readthedocs.org/docs/masstransit/en/develop/overview/subscriptions.html

使用多播订阅是最简单的选择,它需要在端点出现并在所有其他端点注册订阅者后几秒钟。如果您可以控制服务启动的顺序,那么通常可以通过在流程中从后到前启动来避免这种情况。

如果您使用的是订阅服务,那么也可能需要几秒钟才能在任何地方获取数据。它必须通过订阅服务,但订阅会发送给公共汽车上的每个人。这与 SQL 数据库相关联,数据库的延迟会影响此时间。

最后,如果您使用的是静态路由,那么它应该立即起作用,因为订阅是在启动时设置的。

于 2012-02-17T21:44:04.463 回答