Azure Blob Storage:复制地理位置

3
我有一个主要的 Blob 存储在“西欧”地区,其中包含用户上传的文件,通过同一地区内的 Web 应用程序访问。如果您位于“东美洲”地区,则会遇到高延迟问题。
因此,我在“东美洲”地区添加了应用程序的另一个实例,并使用流量管理器根据性能在两个实例之间进行路由。现在,“东美洲”地区的用户与其本地区的应用程序实例通信。
问题是,“东美洲”实例现在正在与“西欧”的 Blob 存储通信,导致应用程序延迟。我可以为“西欧” Blob 存储打开地理冗余,但这基本上只是备份,而不是性能,因为我无法选择要复制到哪个地区。
我不能使用 CDN,因为正在访问的文件是用户的私人文件,而且我只在用户与应用程序交互时为每个 URL 生成了共享访问签名(CDN 只适用于公共存储)。
那么,如何将 Blob 存储从一个地区复制到另一个地区?理想情况下,这将是双向的,就像我可以对 SQL-Sync 所做的那样。理想的最终结果是,“东美洲”实例与“东美洲”基础的 Blob 存储通信,并且 Blob 与“西欧”主要的 Blob 存储同步。
1个回答

1
Azure没有内置机制来方便地在不同区域之间同步Blob(除了配对区域之间的地理复制)。您需要在应用程序中实现此功能。如何做到这一点?这是主观的,可能会引发热烈的讨论(加上StackOverflow不是征求意见的地方)。 即便如此,从客观的角度来看,在Azure中最接近内置启用器的是Service Bus,因为它支持发布/订阅。这将允许您发布与存储内容相关的消息,然后拥有代表每个所需区域的订阅者从其自己的订阅者队列消费这些消息,并写入特定于区域的Blob存储。

1
似乎Azure需要公开其用于故障转移备份的复制机制,以便可以像使用SQL Sync一样用于基于性能的同步。 - simbolo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接