什么是实时游戏的最佳服务器基础架构?

时间:2011-01-24 15:10:05

标签: .net sql-server

我正在开发一款实时游戏,可以实时容纳数千名玩家。什么是最好的服务器结构?

我的想法是使用2个服务器群集 - 一个用于服务器端(所有计算端),另一个用于数据库端,其中负载均衡器对每个群集“负责”。一个主服务器将接收来自用户的请求,并发回用户可以使用的相关服务器的IP地址。

数据库集群将使用数据库复制来实现数据库之间的一致性。

我正在使用.NET + MSSQL进行游戏。

谢谢!

(P.S - 在ServerFault上被问到,没人能帮忙:()

1 个答案:

答案 0 :(得分:3)

<强>服务器:

需要更多信息才能提出任何建议。成千上万是一个巨大的范围,可能是2000,可能是20万。同样,服务器所需的数据量和处理量也会有所不同。如果存在大量数据,并且完整性很重要,那么为应用程序和数据库服务器建立存储区域网络(SAN)可能会更好。

<强>网络:

成千上万的用户发送大量数据很快就会导致网络连接问题。如果这是基于互联网的,你将需要多个连接(只是为了处理数据,以及故障转移),如果它是基于LAN的,你可能仍然需要多个“外部”IP点。在内部(在任何负载平衡器/防火墙之后),您可能还需要对事物进行子网划分,因为服务器间通信可能非常高。

<强>备份

如果一台服务器发生故障会怎样?该服务器的用户是否断开连接?他们的进步是否失败?如果它是一个应用服务器,也许什么都不会丢失(只要它使用数据库来存储所有会话数据)但是数据库服务器呢?

最终尺寸:

你真的想要设计最终尺寸吗?现在为可扩展设置设计软件和架构是一个好主意。如果它是可扩展的(例如,从:1个连接,1个app服务器和1个db服务器开始),您可以随时根据需要修改基础结构(更多用户 - 添加负载均衡器和第二个应用服务器)。只要您考虑到这一点,您应该能够随着事物的发展而扩展。

总切线(AWS):

如果你还没有绑定某个东西,而且它是一个在线系统,那么你可以建立Amazon Web Services吗?它们的设置不仅允许可扩展性,而且还有一些关于如何拆分任务/设计布局的excellent cases studies。鉴于AWS服务通常是真实服务器的模拟,您甚至可以将案例研究作为构建非AWS设置的指南。