【问题标题】:nservicebus: events and dead letter queuenservicebus:事件和死信队列
【发布时间】:2014-08-13 05:36:46
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: events msmq nservicebus dead-letter


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的洞察力。我将在关机时取消订阅以及设置 TimeToBeReceived。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 2010-09-21
    • 2013-09-30
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    相关资源
    最近更新 更多