什么是Azure Lease Blob?

时间:2017-06-09 21:34:32

标签: azure azure-blob-storage

什么是Azure Lease Blob? 它只是一种为blob存储提供独占锁定的机制吗? 这有什么特别之处?我在哪里可以使用它?我试图阅读Azure文档,但我还不清楚。

1 个答案:

答案 0 :(得分:6)

  

什么是Azure Lease Blob?它只是一种提供的机制吗?   对blob存储的独占锁定?

您的理解是正确的。租用blob时,会获得该blob的独占锁定。只要租赁blob,租赁持有人以外的任何人都不能修改或删除blob。您可以获得temporary lease,其持续时间可以介于15到60秒之间,也可以是infinite lease

  

我在哪里可以使用它?

Azure虚拟机最常使用此功能。如您所知,Azure VM由Azure Page Blobs支持。因此,在创建VM时,将在保存该Azure VM的VHD的Blob上获取无限租约,以便其他进程无法修改或删除该Blob。

您希望使用租约blob功能的另一个地方是您希望实现Leader Election模式。

例如,考虑一种情况,您希望通过后台辅助角色处理存储在blob存储中的文件。进一步假设存在多个该工作者角色的实例,其中每个实例在30秒后唤醒,并检查容器中的blob以及是否发现实例处理它的任何blob。

由于Azure工作者角色本质上是无状态的,没有锁定该blob,每个实例都将处理该blob(不是您想要的)。为了避免这种情况,你可以做的是让每个实例尝试获取该blob上的租约。只有一个实例会成功(因此被选为领导者)。其他实例将无法获取该blob上的锁定。领导者实例将处理blob。

另一个例子是您希望在Competing Consumers中分发工作的地方,您希望在其中分配工作。在我们的某个产品中,我们使用Leader Election模式的此模式。通过blob租赁功能,我们找到了一个领导者(能够获得blob租约的消费者),然后这个领导者在其他消费者中分配工作。