Azure Lease Blobとは何ですか?これは、BLOBストレージに排他ロックを提供するメカニズムにすぎませんか?何が特別なのですか?どこで使えますか? Azureのドキュメントを読み込もうとしましたが、まだはっきりしていません。
Azure Lease Blobとは何ですか?これは、BLOBストレージに排他ロックを提供するメカニズムにすぎませんか?
あなたの理解は正しいです。 BLOBをリースすると、そのBLOBの排他ロックを取得します。ブロブがリースされている限り、リース所有者以外の誰もブロブを変更または削除できません。 temporary lease
を取得できます。この期間は、15〜60秒の範囲であるか、infinite lease
です。
どこで使えますか?
最も一般的には、この機能はAzure仮想マシンによって使用されます。ご存知のとおり、AzureVMはAzurePageBlobsによってサポートされています。したがって、a VMが作成されると、そのAzure VMのVHDを保持するBLOBで無限リースが取得されるため、他のプロセスがそれを変更または削除することはできません。ブロブ。
リースBLOB機能を使用するもう1つの場所は、 Leader Election
パターンを実装する場合です。
たとえば、BLOBストレージに保存されているファイルをバックグラウンドのワーカーロールを介して処理するシナリオを考えてみます。さらに、そのワーカーロールの複数のインスタンスが実行されており、各インスタンスが30秒後にウェイクアップし、コンテナー内のblobをチェックし、blobが見つかった場合はそのインスタンスがそれを処理するとします。
Azureワーカーロールは本質的にステートレスであるため、そのBLOBをロックしないと、各インスタンスがそのBLOBを処理します(必要なものではありません)。この状況を回避するには、各インスタンスにそのBLOBのリースを取得させようとします。 1つのインスタンスのみが成功します(したがって、リーダーとして選出されます)。他のインスタンスは、そのBLOBのロックの取得に失敗します。リーダーインスタンスはblobを処理します。
もう1つの例は、作業を分散したい場所 Competing Consumers
作業を分散したい場所です。当社の製品の1つでは、このパターンをLeader Election
パターンとともに使用しています。ブロブリース機能を通じて、リーダー(ブロブリースを取得できた消費者)を見つけ、このリーダーが他の消費者に作業を分散します。