【问题标题】:Difference between Lease-Based and Lock-Based exclusive access in Azure QueuesAzure 队列中基于租约和基于锁的独占访问之间的区别
【发布时间】:2015-03-20 09:00:48
【问题描述】:

我知道(阅读 msdn 文档here)Windows Azure 存储队列对消息使用基于租约的独占访问策略,而 Azure 服务总线队列使用基于锁的策略。 在两者中,我都可以设置锁定/租赁的最长持续时间。那么,这两种方法之间最重要的区别是什么?有人可以提供一个清晰/简短的例子吗? 谢谢。

【问题讨论】:

    标签: azure azure-storage azureservicebus azure-queues azure-servicebus-queues


    【解决方案1】:

    我的理解是,基于租约有时间限制,而基于锁则没有。

    例如,一个租约的期限可以长达 30 秒,在当前用户释放它或期限到期之前,其他人无法获得该租约来访问该资源。但是 30 多岁之后,任何人都可以得到它并访问该资源。 (当然,您可以将持续时间设置为无限。)

    对于基于锁的,如果当前用户没有释放锁,没有人可以得到锁。

    【讨论】:

    • 感谢@nop 的回复,但我认为这不是真的。服务总线队列使用基于锁的机制,并且还有一个锁超时时间(默认为 60 秒)。
    【解决方案2】:

    Managing Concurrency in Windows Azure with Leases

    @nop 的回答是正确的。

    租约具有自动超时功能,因此如果持有资源的服务死亡,资源在设置超时后被释放,避免了死锁的情况。它们还具有更新功能。

    【讨论】:

    • nop 的回答不正确——他们都有超时; outlookrperson 对 nop 答案的评论是正确的
    猜你喜欢
    • 1970-01-01
    • 2012-09-26
    • 2011-04-03
    • 2023-02-05
    • 2018-02-25
    • 2012-06-14
    • 2015-09-12
    • 2011-06-16
    • 2012-06-29
    相关资源
    最近更新 更多