Events nservicebus:事件和死信队列

Events nservicebus:事件和死信队列,events,msmq,nservicebus,dead-letter,Events,Msmq,Nservicebus,Dead Letter,使用NSB的发布/订阅模型,以下两种情况似乎会导致死信队列填满,最终导致“资源不足”错误 1) 发布没有订阅服务器的事件类型 2) 订阅服务器处于脱机状态 出于我们的目的,我们对订阅服务器启动时的历史事件不感兴趣,因此在启动时清除传入队列。然而,订阅服务器脱机时发布的事件会填满死信队列 我是否误解了命令与事件?这是我对命令的预期行为,但如果未订阅,预期事件将消失。使用NServiceBus时,事件被视为与命令一样重要,因此在耐久性、交付等方面受到相同的保证 因此,如果您的订阅者不关心脱机时发生的

使用NSB的发布/订阅模型,以下两种情况似乎会导致死信队列填满,最终导致“资源不足”错误

1) 发布没有订阅服务器的事件类型 2) 订阅服务器处于脱机状态

出于我们的目的,我们对订阅服务器启动时的历史事件不感兴趣,因此在启动时清除传入队列。然而,订阅服务器脱机时发布的事件会填满死信队列


我是否误解了命令与事件?这是我对命令的预期行为,但如果未订阅,预期事件将消失。

使用NServiceBus时,事件被视为与命令一样重要,因此在耐久性、交付等方面受到相同的保证

因此,如果您的订阅者不关心脱机时发生的事件,它可能会在关机前取消订阅-这样,订阅者就明确决定,它不关心不在身边时会发生什么。。。只要确保当它稍后重新联机时,如果输入队列中有一些(旧的)事件,它不会感到困惑或阻塞,因为在发送“取消订阅”消息到发布者之间的时间内,可能会发布内容


另一个选项是在事件消息上提供
[TimeToBeReceived(…)]
属性,但只有在可以安全确定事件内容在所有订阅者的固定时间后失去相关性时,才应使用该属性。

感谢您的帮助。我将在关机时取消订阅,并设置接收时间。