我有一个Web应用程序(从iis6服务的.NET),为最终用户提供接近实时的数据。 我们的服务器坐落在北美的数据中心,但是我们的澳大利亚用户正在经历不可接受的性能(毫不奇怪)。 鉴于我们没有无限的资源,有哪些策略可以提高澳大利亚的业绩?
在澳大利亚放置networking/应用程序服务器是显而易见的答案,但是我们也需要复制我们的数据库(快速接近100 GB),并且假定复制需要接近实时(最多一分钟就可以)像一个昂贵的努力。 使用CDN将有助于获取静态内容。
有什么其他策略可以帮助我们?
如果您的数据存储在RDBMS中,且主要是只读的,那么您最好的办法可能是在澳大利亚放置数据库从属和只读前端 – 您应该能够保持接近实时的复制(±1到5分钟延迟)相当可靠的configuration提供您的数据库没有发生巨大的变化一直发生。 你从来没有说过你有多lessDB更改/这些更改集有多大,但通常数据库复制可以通过相对瘦的pipe道来完成,一旦初始同步不受阻碍。
在testing实验室中,您应该首先使用这个function(使用stream量整形防火墙来引入延迟和/或带宽限制,以查看成功复制的最低要求)。 您可能还希望发布一个大部分最新的数据库,并在“澳洲”安装完成后让其“赶上”同步,以最小化初始启动时间。
这取决于用户数量以及您对客户端设置的多less控制,但是您可以考虑在MS Linuxterminal服务,Citrix或类似的Linux环境中使用。
您也可以考虑让应用程序将数据库更新提交到所有语言环境(只要应用程序的“更新”方面只在一个地方),然后将应用程序的只读分段放置在本地数据库实例。
如果每个Web请求中显示的数据很小,则移动数据可能不是真正的问题。
这可能是由你的应用程序返回的HTML臃肿。 如果你可以使html更小,你的用户会觉得更可以接受。
您也可能希望将您的服务器移到加利福尼亚州。 为美国和非洲服务的良好妥协地点。