2012-02-17 82 views

回答

3

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

使用多点传送订阅是最简单的选择,在端点出现后需要几秒钟时间,并向所有其他端点注册订户。如果您可以控制启动服务的顺序,那么通常可以通过在流程中开始回溯来避免这种情况。

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

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

+0

请问您是否可以澄清消费者重新启动时第一条消息是否也可能由于相同的原因而丢失(当发布者和订阅服务运行正常时)? – Gebb 2012-10-10 17:45:41

+0

这取决于您是否在关闭消费者时调用取消订阅操作。假设您不这样做,则不会公布订阅状态的变化,并且邮件将按预期发送。如果您在服务关闭期间调用取消订阅操作,那么订阅将不会存在。 – Travis 2012-10-10 18:45:59