想要跨多个区域维护单个SQL Azure DB

时间:2012-05-29 13:27:52

标签: .net azure azure-sql-database azure-data-sync

在我的应用程序中,我有如下情况。

  • 用户下载我们的应用程序exe并包含在azure托管的应用程序中
  • 我们在每个区域都有一个REST API,用于从应用程序接收数据,这样数据传输就不会花费给用户
  • exe发送发送到应用程序区域中的REST API的数据
  • REST API将该数据存储在SQL Azure DB中,该数据库托管在一个区域中

这样,数据传输的成本由我们支付。 现在,为了降低成本,我们要删除其余的api并将数据存储在跨所有区域托管的数据库中。这种方式由用户使用的exe将数据直接存储在与用户的应用程序相同的区域中的DB中。我们在Web应用程序中使用此数据进行监控。 我已经确定了三种可能的解决方案:

  1. 是否可以跨多个区域安装SQL Azure数据库联盟?
  2. 我可以在多个区域中使用DataSync和多个数据库。
  3. 或者在强力方法中,我可以在所有地区托管独立的数据库,并在webapplication中使用时合并数据
  4. 我知道最后一种方法可行,但我想在最后一个地方使用它。
    任何人都可以建议跨多个地区的联邦吗?
    DataSync的成本是多少?
    对此有更好的解决方案吗?
    感谢。

1 个答案:

答案 0 :(得分:2)

关于SQL Azure联合:所有联合必须位于同一SQL Azure服务器中,这也意味着相同的数据中心。对于多个服务器,我不确定将来会对联盟的更新有什么用。

关于数据成本:Ingress是免费的,因此无论哪个数据中心承载REST接口,都不会为来自客户端应用程序的传入数据带来带宽费用。

我知道你不是要求关于REST与直接数据库访问的架构建议,但是......我会更多地考虑保持REST API与直接数据库访问的关系。通过使用REST API,您将拥有一种很好的扩展方式,以及监控用户活动。此外,您只需修改REST实现,而不是将此知识推送到客户端应用程序,就可以透明地更改架构(或迁移到联盟)。