什么是Azure Lease Blob? 它只是一种为blob存储提供独占锁定的机制吗? 这有什么特别之处?我在哪里可以使用它?我试图阅读Azure文档,但我还不清楚。
答案 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租约的消费者),然后这个领导者在其他消费者中分配工作。