Назад | Перейти на главную страницу

Какое высокопроизводительное решение для серверной части является лучшим

Мы создаем серверную часть игровой платформы, где большое количество мобильных устройств (тысячи, если не десятки тысяч) подключаются к серверу, отправляют небольшую информацию каждую секунду (скажем, около 500 байт) и получают небольшой ответ на основе по расчетам (около 1Кб).

У данных есть серверная часть РСУБД (на данный момент сервер sql может быть любым другим).

Мы реализовали прототип с использованием HTTP GET (с ASP.NET), но, очевидно, он не подходит и не масштабируется для этой потребности.

Каков наилучший подход к созданию этого стека для достижения максимальной производительности? (т.е. Windows / Linux, язык программирования, шаблоны проектирования). Очень важно, чтобы мы могли легко масштабировать его и иметь максимальную производительность.

Большое спасибо!

Говоря структурно, такого рода приложения, частые мелкие транзакции, - это то, что ненавидит задержку, как ненависть. Беспроводная связь (вы сказали, мобильная!) Хорошо известна тем, что вносит задержки в среду, так что это необходимо запланировать. Сети G3 / 4 намного хуже сетей 802.11a / b / g / n. Приложение должно быть спроектировано таким образом, чтобы время от времени 2, 3 или даже 5 секунд туда и обратно не приводило к остановке всего приложения (ладно, может быть, некоторое заикание для 5-секундного RTT).

Конкретные способы сделать это, вероятно, лучше всего задать в StackOverflow.

  • Если полная реляционная база данных не является необходимостью, некоторые из NoSQL решения масштабируются намного больше / проще / быстрее, чем стандартные базы данных отношений.
  • Что бы вы ни делали, если вам не нравится обслуживать оборудование, я предлагаю облачную архитектуру.
    • Если вам нужен полный контроль над системой, обратите внимание на Amazon EC2. Если вы все же решите переместить его в дом, это легко сделать с помощью Эвкалипт (API идентичны).
    • Если вы хотите построить немного выше по стеку приложений, вы можете изучить Google App Engine; у него есть собственные ограничения базы данных, так что имейте в виду.