[C#] 透過Azure Blob 租用解決Azure App Service Scale Out 多 Instances 使用同一個 Lock
2024-03-05
上一篇文章,我們提到了Azure App Service scale out 之後如何取得 instance id ,主要就是我要測試
如果現在他分裂成一台以上,我又要對檔案進行 IO 會產生什麼事情,你會問我為何要這樣操作,因為有可能你會用
SQLite 或是 LiteDB 等..單機資料庫但是對於檔案寫入會有問題,這時候有什麼方法可解決 ?
我知道你第一個想到的就是百搭使用的 Redis ,但是 Redis 不便宜你知道的,這時候網路上看到有一個做法就是使用 Azure Blob 的租用 來做到
1. 申請 Azure Blob 服務拿到 Connection String
2. 之後建立 Container 還有 一個檔案 這邊範例 Container: lockuse , 檔案名稱:
lockfile
3. 之後就是程式碼的部分,主要就是取用租用後才能夠寫檔案,其中我也記錄了寫檔 instance 的 Id
4. 測試程式
結果,比對一下,不會因為多 instance
的原因導致檔案被覆蓋,或是檔案被鎖定,資料數量也是正確
筆記一下,如果你有需要用到 instance lock 的平價解決方案。