如何更好地服务跨洋用户?

如何更好地服务跨洋用户?

我有一个 Web 应用程序(由 iis6 提供的 .NET 服务),它为最终用户提供近乎实时的数据。我们的服务器位于北美的数据中心,但我们的澳大利亚用户却遇到了不可接受的性能问题(这并不奇怪)。鉴于我们的资源有限,有哪些策略可以提高澳大利亚的性能?

在澳大利亚放置一个 Web/应用服务器是显而易见的答案,但我们还需要复制我们的数据库(很快就接近 100 GB),而且考虑到复制需要接近实时(最多一分钟就可以了),这听起来像是一项昂贵的努力。使用 CDN 将有助于静态内容。

我是否应该考虑其他策略来帮助解决这一问题?

答案1

如果您的数据存储在 RDBMS 中,并且主要是只读的,那么最好的办法可能是将数据库从属和只读前端放在澳大利亚——只要您的数据库不会一直发生巨大变化,您就应该能够通过该配置相当可靠地维持近乎实时的复制(± 1 到 5 分钟的延迟)。您从未说过数据库更改的频率/这些更改集有多大,但通常一旦初始同步完成,数据库复制就可以通过相对较细的管道完成。

您可能首先应该在测试实验室中尝试一下(使用流量整形防火墙引入延迟和/或带宽限制,以了解成功复制的最低要求)。您可能还想发送一个最新的数据库,并让它在澳大利亚安装后“赶上”同步,以最大限度地缩短初始启动时间……

答案2

这取决于用户数量以及您对其客户端设置的控制程度,但您可以考虑 MS Terminal Services、Citrix 或 Linux 环境中的类似产品。

答案3

您可能还考虑让应用程序将其数据库更新提交到所有区域设置(只要应用程序的“更新”方面只在一个地方),然后将应用程序的只读段放在本地数据库实例上。

答案4

如果每个 Web 请求中显示的数据很少,那么移动数据可能不是真正的问题。

您的应用返回的 html 可能比较臃肿。如果您能让 html 变小,您的用户会觉得更容易接受。

您可能还希望将服务器移至加利福尼亚。这是为美国和澳大利亚提供服务的良好折衷地点。

相关内容