我有一个大型游戏引擎,为手机客户端和网站提供服务。数据库是MSSQL2008,引擎是用C#编写的。
该网站使用ASP.NET MVC构建,移动电话的Web服务也构建在ASP.NET MVC上(可能会迁移到WCF或纯套接字服务器)。
网站和Web服务位于IIS 7服务器上,数据库位于专用服务器上。两者都连接在当地的快速Lan上。
游戏需要为每个用户提供实时响应(不到1秒)。当我对服务进行一些负载测试时 - 似乎在~250个用户上它达到了1秒响应(在50时它大约是200ms)。它应该支持超过10000个连接的用户。 (我猜服务器复制)。
我想再增加一层 - 一个专门用于游戏网络服务的实时服务器。我听说Python可以用来构建非常高性能的服务 - 添加这个层是否是一个聪明的主意? (该层应具有内存临时数据库,以便为实时播放器提供服务,然后每隔X秒将其全部转储到后端数据库中。)
我的建筑有什么用吗?怎么可以改进?
非常感谢!
答案 0 :(得分:4)
您用来提问这个问题的网站也是一个非常相似的堆栈,他们在blog.stackoverflow.com以及serverfault blog上写过它。你可能会偷看他们一直在做的事情,但我怀疑你可能需要研究的是某种缓存层。
答案 1 :(得分:0)
除了SO之外,另一个在Microsoft堆栈上实现了非常高规模的站点的例子是PlentyOfFish.com。
您可以在High Scalability blog,Coding Horror和其他人上阅读有关其架构的信息。谷歌搜索“plentyoffish scaling”将揭示其他一些消息来源,以及与创始人马库斯弗林德就此主题进行的采访。