我们在Azure上扩展我们的两层网站时遇到了一些问题。
我们的目标是在不同地区(美国西部,澳大利亚东部)创建两个网站,并为最终用户提供最接近的网站。
我们看到两个地区在平均请求时间方面存在大量差异,并且想知道如何才能减少这种性能影响?
或
有人以另一种方式实现了这个吗?
以下是我们目前的情况:
1 x美国西部网站
1 x澳大利亚东部网站
美国西部的1 x SQL数据库
我们使用Traffic Manager根据传入请求的位置选择最佳网站/区域。它的工作非常好。
平均请求结果:
美国西部:150ms
澳大利亚东部:800毫秒
我们的想法:
由于SQL数据库与网站位于不同的数据中心/区域,因此两者之间的延迟会增加平均请求。
请注意:
我们知道这可以在VM上安装SQL并在两个数据中心之间设置vnet,但如果可能的话,我们希望继续使用完全托管的Azure SQL和网站。
答案 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数据库将是一个"在线二级"。
答案 3 :(得分:0)
看看这个技术讲座 - Azure Web Sites: Architecting Massive-Scale Ready-For-Business Web Apps
如果您可以将写入分割到一个区域但是读取到最近的区域并且具有SQL只读辅助数据库可以帮助您减少延迟