Некоторые друзья и я написали игру для Facebook, не задумываясь о реальной архитектуре игры - и представьте себе наше удивление, когда мы достигли более 300 000 уникальных игроков в месяц и когда наши серверы растаяли.
Сейчас мы работаем над переработкой всей серверной части игры, чтобы сделать ее более масштабируемой и способной поддерживать сотни тысяч, если не миллионов пользователей.
В настоящее время я новичок во всем масштабированииКонцепция, но из того, что я понял более или менее, это то, что нам нужно: 1. Балансировщик нагрузки 2. Веб-сервер на 20 000 ~ одновременных пользователей (Мы связались со сторонним разработчиком Comet, который утверждает, что он может поддерживать до 20 000 одновременных пользователей).количество соединений на узел) 3. Кэширующий кластер 4. Кластер баз данных
Теперь все это, очевидно, очень абстрактно, но я что-то упустил?Если мы разрабатываем это в .NET, кто-нибудь может порекомендовать хорошую технологию кластерного кеш-сервера?
Имейте в виду, что:
- Мы стремимся охватить миллионы игроков
- Мы стремимся охватить 10/100 тысяч одновременно работающих пользователей
- Нам необходимо хранить как можно больше данных в кэше и каждый раз сбрасывать их в БД
- У нас естькакое-то взаимодействие между игроками (получение обновлений очков игрока и т. д.), и нам нужен централизованный или реплицируемый кеш для работы (в основном это означает, что нам нужны данные кеша, к которым все веб-серверы обращаются для полной синхронизации)