使用Azure流量管理器进行扩展的DB Strategies

时间:2015-05-22 15:06:56

标签: azure azure-sql-database azure-web-sites

我有兴趣使用Azure流量管理器将网站/ webapp流量路由到位于客户端附近的服务器(最初是英国和美国)。

Scott Hanselman写道,设置here的速度和容易程度是多么快捷,但他没有深入研究数据库的选项(许多人在评论中都在询问这一点)。所以 - 有人可以告诉我这里的选择。

因此,如果我设置2个网站,并使用流量管理器在它们之间进行路由,我该如何解决数据库访问问题。我正在使用SQL Azure作为数据库(当前是标准层),而我的网络应用程序和数据库是合理的“聊天”。因此我假设我需要为每个区域建立一个数据库,然后在它们之间建立某种同步。这里有什么选择?我已经看到提到SQL Azure Sync - 这仍然被认为是一个很好的解决方案吗?或者高级数据库的Active Geo-replication功能是否会提供更好的解决方案?

2 个答案:

答案 0 :(得分:2)

如果您想要低延迟和更好的吞吐量,我建议使用Active Geo-replication功能但请注意,路由到主数据库的流量可以写入数据库,所有其他数据库都是只读的。如果需要更新,可以考虑使用服务总线提交作业以更新主服务器。

答案 1 :(得分:2)

我们公司的情况非常相似。我们基本上在同一个关联组中的各种Azure数据中心(Cloud Service,Azure DB等)上设置了完整的基础架构。在我们的例子中,通过我们的应用程序对数据库路由的所有更新/插入/删除操作,因此我们将该语句发送到队列,然后作为单个事务对本地数据库执行语句。每个位置的竞争消费者以异步方式监视该队列,并以最终一致的方式应用于其他DB(在Elastic Sc​​ale Shard Map Manager DB中映射)。我们对所有主键使用代理GUID,因此简化了我们的解决方案。例如,对于插入,.NET代码生成GUID,然后在本地插入。使用GUID将相同的插入添加到队列中,从而无需获取生成的密钥。