1

使用 NSB 的 Pub/Sub 模型,以下两种情况看似会导致死信队列填满,最终导致“资源不足”错误。

1) 发布没有订阅者的事件类型 2) 订阅者离线

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

我是否误解了命令与事件?这是我期望从命令中获得的行为,但如果没有订阅,预计事件会消失。

4

1 回答 1

1

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

因此,如果您的订阅者在离线时不关心事件,它可以在关闭之前取消订阅 - 这样,您的订阅者明确决定它不关心当它不在身边时会发生什么。 . 只要确保它不会混淆或以某种方式阻塞,如果它的输入队列中有一些(旧的)事件,当它稍后重新上线时,因为东西可能会在取消订阅消息发送和它到达出版商。

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

于 2014-06-23T09:21:33.453 回答