2017-04-26 33 views
0

我們有計劃遷移到Azure的遺留系統。系統使用sqlite文件來存儲我們需要訪問的數據。經過衆多解決方案之後,我們決定將sqlite文件存儲在Azure文件存儲中,並通過來自雲工作者角色的UNC路徑訪問它們(我們無法使用Azure功能或應用服務,因爲它們沒有使用SMB的能力)。直接從Azure文件存儲訪問sqlite文件有何問題?

這一切似乎工作正常,但我很緊張的是,試圖通過這種方式訪問​​大型文件(有效地通過網絡)時,sqlite可能會如何反應。

有沒有人有這種事情的經驗,如果是這樣你遇到任何問題?

另一種方案是使用web worker角色並將sqlite文件存儲在blob存儲中。爲了訪問數據,我們必須將blob複製到Web服務器計算機上的臨時文件。

回答

0

您當然可以使用Azure文件存儲,因爲它實際上是一個SMB共享,​​由blob存儲支持(這意味着它是耐用)。而且,由於它是SMB共享,​​因此您可以從各種工作者角色實例中訪問它。

至於你的替代選擇(存儲在blob中並複製到臨時存儲) - 這是行不通的,因爲每個worker角色實例是獨立的,然後你會在每個VM上擁有多個未同步的數據庫副本。如果虛擬機重新啓動,您將立即丟失該臨時驅動器上的所有數據。

注意:使用Web/worker角色實例以及虛擬機,您可以附加一個支持blob的磁盤並在其中持久存儲內容。但是,您仍然有處理多個實例的問題(因爲連接的磁盤不能連接到多個虛擬機)。