Azure网站连接到不同区域的Azure SQL数据库的性能问题

时间:2015-04-13 07:23:01

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

我们在Azure上扩展我们的两层网站时遇到了一些问题。

我们的目标是在不同地区(美国西部,澳大利亚东部)创建两个网站,并为最终用户提供最接近的网站。

我们看到两个地区在平均请求时间方面存在大量差异,并且想知道如何才能减少这种性能影响?

有人以另一种方式实现了这个吗?


以下是我们目前的情况:
1 x美国西部网站 1 x澳大利亚东部网站 美国西部的1 x SQL数据库

我们使用Traffic Manager根据传入请求的位置选择最佳网站/区域。它的工作非常好。

平均请求结果:
美国西部:150ms
澳大利亚东部:800毫秒

我们的想法:
由于SQL数据库与网站位于不同的数据中心/区域,因此两者之间的延迟会增加平均请求。

请注意:
我们知道这可以在VM上安装SQL并在两个数据中心之间设置vnet,但如果可能的话,我们希望继续使用完全托管的Azure SQL和网站。

4 个答案:

答案 0 :(得分:3)

由于额外的带宽成本和更高的延迟,建议不要在托管网站的不同区域使用数据库。

您可以使用地理复制在澳大利亚创建只读辅助设备:https://msdn.microsoft.com/en-us/library/azure/dn741339.aspx

如果您希望能够同时写入两个数据库(在美国西部和澳大利亚)并保持同步,那么目前唯一的方法就是使用数据同步http://azure.microsoft.com/en-gb/documentation/articles/sql-database-get-started-sql-data-sync/

答案 1 :(得分:0)

你看过

吗?

http://azure.microsoft.com/en-gb/documentation/articles/sql-database-get-started-sql-data-sync/

另一种简单的方法是缓存读取数据并使用服务总线进行写入。

答案 2 :(得分:0)

根据应用程序架构,如果它主要读取您的网站使用活动地理复制设置可能是一个选项。这样,您的Azure数据库就可以异步复制到澳大利亚东部,而您的澳大利亚网站可以将其用于较低的请求时间(只读)。

在SQL Azure中,您在澳大利亚的SQL Azure数据库将是一个"在线二级"。

More info here

答案 3 :(得分:0)

看看这个技术讲座 - Azure Web Sites: Architecting Massive-Scale Ready-For-Business Web Apps

如果您可以将写入分割到一个区域但是读取到最近的区域并且具有SQL只读辅助数据库可以帮助您减少延迟