Я разрабатываю игру в реальном времени, которая должна вмещать тысячи игроков в реальном времени. Какая структура серверов лучше всего подходит для этого?
Моя идея заключалась в использовании двух кластеров серверов - одного для Server End (все вычислительные ресурсы) и одного для базы данных, где балансировщик нагрузки «отвечает» за каждый из кластеров. Один главный сервер будет получать запросы от пользователей и отправлять обратно IP-адрес соответствующего сервера, чтобы пользователь мог с этим работать.
Кластер базы данных будет использовать репликацию базы данных для обеспечения согласованности между базами данных.
Я использую .NET + MSSQL для игры.
Задержка будет вашим самым большим врагом для игр. Геймеры не терпят задержек, поэтому вы должны свести их к минимуму.
Есть несколько интересных статей по инфраструктуре игровых серверов, которые могут вас заинтересовать:
http://www.eveonline.com/devblog.asp?a=blog&bid=769
http://wiki.eveonline.com/en/wiki/RAMSAN
http://www.datacenterknowledge.com/archives/2009/11/25/wows-back-end-10-data-centers-75000-cores/
https://stackoverflow.com/questions/1418749/how-are-massively-multiplayer-online-rpgs-built