2012-06-21 3 views
1

Я разрабатываю веб-приложение (игру) и планирую использовать C# /. Net для реализации. У меня есть проблемы с масштабируемостью и производительностью, учитывая то, что я хочу достичь. Здесь идет приложение. Существует виртуальный мир, состоящий из многих королевств. Войны происходят среди этих королевств для превосходства. Когда игра проводится, я хочу показать точную населенность мира в реальном времени, то есть когда люди рождаются, население увеличивается, а когда они умирают на войне (или иначе), это уменьшается. Следовательно, моя проблема сводится к числу, которое обновляется потенциальными тысячами геймеров и отображается на веб-странице. Как вы справляетесь с этим в режиме реального времени. Хранение числа в базе данных, вероятно, не будет работать, поскольку его необходимо обновлять так много раз одновременно. Какие другие методы могут быть использованы? Является ли это кандидатом для базы данных без SQL, memcached, Hadoop? Какие-либо предложения?
Большое спасибо.Хорошо подходит для написания сильно параллельного приложения

+0

Почему вы не моделируете ожидаемую нагрузку и не видите, может ли ваша база данных справиться с этим? – svick

ответ

0

Возможно, это нехорошая идея «нажимать» обновления клиенту, так как это забивает сеть, когда трафик становится высоким. Вместо этого вы должны запрашивать население каждую секунду или около того, поэтому это перемещает любые узкие места на процессор сервера, который, как правило, быстрее, чем сетевое соединение.

Возможно, вам понадобится какая-то база данных для хранения данных о населении, так как вам нужно отслеживать популяцию между запросами.

Этот подход также предотвращает повреждение данных клиента, поскольку вместо приращений/декрементов данные заменяются каждый раз.

Смежные вопросы