【问题标题】:PeekLock Microsoft Azure Service BusPeekLock Microsoft Azure 服务总线
【发布时间】:2019-03-21 18:26:26
【问题描述】:

我正在使用多个消费者,以便使用 ReceiveMode.PeekLock 从队列接收消息。当我与一个消费者锁定消息但未完成消息接收以便从队列中删除时,其他消费者无权访问它。

我的问题是,当其他消息被锁定且尚未从队列中删除时,其他消费者是否可以访问其他消息,或者他们是否被阻止尝试出队并从该队列接收任何其他消息?

【问题讨论】:

    标签: azureservicebus servicebus


    【解决方案1】:

    是的,消费者确实可以访问队列中的其他消息,而不是锁定的消息。
    否则基于队列消息的缩放将无济于事,因为其他消费者将等待第一条消息被处理,之后每个人都在等待的消费者将能够接收下一条消息......

    来自Peek-Lock Message (Non-Destructive Read)

    此操作以原子方式从队列或订阅中检索并锁定消息以进行处理。 保证在队列/订阅描述中指定的锁定持续时间内,消息不会传递给其他接收者(仅在同一队列或订阅上)。当锁过期时,消息对其他接收者可用。为了完成消息的处理,接收者应该使用从该操作中接收到的锁 ID 发出删除命令。要放弃对消息的处理并为其他接收者解锁,应发出解锁消息命令,否则锁定持续时间可能到期。

    【讨论】:

    • 你好。感谢您的回复。我确实找到了相同的文档,但我有一些疑问,因为它并没有完全写到其他消费者仍然可以接收消息。
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2011-07-20
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2018-10-30
    相关资源
    最近更新 更多