@Persotr27

Как динамически создавать сервера в приложении?

Понимаю, что вопрос объёмный и одним ответом до программной реализации не дойти, но нуждаюсь хотя бы в понимании того, как искать информацию на эту тему.

Я так понимаю, когда, к примеру, создаётся игра (комната, лобби) в условной Доте 2 или агар.ио, слизер.ио и тому подобных, для неё, для каждой такой игры, запускается свой инстанс сервера, который принимает и обрабатывает запросы исключительно от неё. После, когда игрок подключается к игре (например, по коду, для браузерных) он подключается и к запущенному для игры серверу.

Как такую же вещь сделать, если я хочу создать браузерную игру с множеством "комнат", и предусматриваю, что в одной комнате может быть до 1000 игроков взаимодействующих в реальном времени?
Повторюсь, что я лишь нуждаюсь в направлении того, как искать информацию на эту тему.
Если использовать 1 сервер, но с разными вебСокетными комнатами, будет ли этого достаточно? Мне кажется 1 сервер (одна программа) не справится со всеми запрашиваемыми требованиями.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
для каждой такой игры, запускается свой инстанс сервера

Мне кажется 1 сервер (одна программа) не справится со всеми запрашиваемыми требованиями.

Не обязательно. Хорошо сделанная система способна обрабатывать десятки тысяч соединений и одним инстансом. Если эта система разработана для эксплуатации в облаке, то оркестратор по мере роста нагрузки может автоматически запускать дополнительные инстансы, равномерно разбрасывая между ними запросы.

Но если хочется именно выделять отдельный сервак под задачу, то надо писать софтину, которая используя API оркестратора, например Kubernetes, будет разворачивать целевые виртуалки из docker-образов, проводить им начальную настройку и маршрутизировать на неё клиентов.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы