nservicebus并发访问saga数据

我使用NServiceBus作为企业服务总线,在我正在开发的解决方案中,我有一个编排服务,它从所有客户端应用程序接收多达10k条消息。 我想提高架构性能,从而增强所提供的解决方案。

我使用Saga Data类,我想在所有工作线程之间共享对它的访问(到目前为止我只设置一个线程但我想设置至少10个),当多个线程尝试访问时会发生什么同样的传奇? NSB是否已经提供了这样的并发function? 我必须自己实施吗? 如果后者有任何提示?

提前致谢

如果我理解你,你会问如果你有多个线程同时访问同一个saga实例会发生什么。 NServiceBus正在使用底层存储来确保只有一个线程可以同时创建/更新给定的saga实例。 其他人将回滚并且NServiceBus对重试的支持将确保重试该消息,从而为您解决竞争条件。 你可以在这里阅读更多:

http://andreasohlund.net/2012/09/19/nservicebus-sagas-and-concurrency/

你不太可能有多个传奇共享相同的实例数据,它不是它们的设计工作方式。 传奇是一个长期运行过程的实例。 saga数据类只是一种结构,允许您存储有关该实例的信息,以帮助管理其生命周期内的状态。 如果您想提高性能,我建议您考虑分发您的工作端点( http://docs.particular.net/samples/scaleout/ )。