2017-04-26 59 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的磁盘并在其中持久存储内容。但是,您仍然有处理多个实例的问题(因为连接的磁盘不能连接到多个虚拟机)。