nservicebus持久性数据 - 它是什么?

时间:2018-03-28 15:15:17

标签: nservicebus

当我通过nservicebus上的文档阅读时,我无法找到持久性部分下的内容。

如果nservicebus是一个松散耦合的分布式库,发送自包含的消息,那么还有什么可以保留?我不明白。

使用Web应用程序,当用户有会话时,我们可以选择在SQL Server,内存或其他方式中保留Session,但是使用nservicebus时,没有会话要保持。

那么,实际上nservicebus中的持久性是什么? 什么样的数据可以持续存在以及出于什么原因?

1 个答案:

答案 0 :(得分:0)

RabbitMQ和Azure Service Bus等传输本身支持发布/订阅。如果端点想要接收已发布的事件,则订阅'这些事件存储在那些排队技术中。其他排队技术本身不支持发布/订阅,如MSMQ和Azure存储队列。 NServiceBus模仿行为,但需要将这些订阅存储在其他地方。

我们可以存储的其他内容包括超时和延迟消息以及saga状态。传奇是一种状态机(工作流),这种状态需要存储在某个地方。另一个功能NServiceBus supports is the outbox,它通过将消息事务和业务事务放在同一个数据库中来消除对分布式事务的需求。

如果您只使用某些功能,某些传输允许您本机执行此操作。这消除了对持久性的需要。 Sagas和Outbox总是需要持久性。