【发布时间】:2012-03-09 01:28:21
【问题描述】:
我有一个在 MSMQ 上运行的 MassTransit ServiceBus。看来通过总线发送的第一条消息没有到达,但后续消息呢?
在发送消息之前是否需要在队列或总线上执行一些初始化?
【问题讨论】:
标签: msmq masstransit
我有一个在 MSMQ 上运行的 MassTransit ServiceBus。看来通过总线发送的第一条消息没有到达,但后续消息呢?
在发送消息之前是否需要在队列或总线上执行一些初始化?
【问题讨论】:
标签: msmq masstransit
这取决于一些设置,系统需要设置多长时间才能正确路由。如果只有第一条消息未能在正确的位置结束,那么订阅数据可能还没有传播到任何地方。 http://readthedocs.org/docs/masstransit/en/develop/overview/subscriptions.html
使用多播订阅是最简单的选择,它需要在端点启动后几秒钟内向所有其他端点注册订阅者。如果您可以控制服务启动的顺序,那么通常可以通过在流程中从后到前启动来避免这种情况。
如果您使用的是订阅服务,那么在各处获取数据也可能需要几秒钟的时间。它必须通过订阅服务,但订阅会发送给公共汽车上的每个人。这与 SQL 数据库相关联,数据库的延迟会影响此时间。
最后,如果您使用的是静态路由,那么它应该会立即生效,因为订阅是在启动时设置的。
【讨论】: