我知道(阅读msdn文档here),Windows Azure存储队列对消息使用基于租用的独占访问策略,而Azure服务总线队列使用基于锁的策略。在这两者中,我都可以设置锁定/租用的最大持续时间。那么,这两种方法之间最重要的区别是什么呢?有人能提供一个清楚/简短的例子吗?谢谢。
发布于 2015-06-25 02:26:02
我的理解是基于租约的有时间限制,而基于锁的没有时间限制。
例如,租约的持续时间可以长达30秒,在当前用户释放它或持续时间到期之前,其他用户无法获得访问该资源的租约。但在30秒之后,任何人都可以获得它并访问资源。(当然,您可以将持续时间设置为无限大。)
对于基于锁的,如果当前用户不释放锁,则没有人可以获得锁。
发布于 2018-07-09 14:02:23
Managing Concurrency in Windows Azure with Leases
@nop的答案是正确的。
租约具有自动超时功能,因此,如果持有资源的服务死亡,则在设置超时后释放资源,从而避免死锁的情况。他们也有续费的能力。
https://stackoverflow.com/questions/28074047
复制相似问题