Как они работают
Есть три ключевых аспекта, которые нужно понять про сессии: как ёмкость развёртывания управляется, как создавать и управлять развёртываниями для размещения сессий и как выбирать наиболее подходящее развёртывание для каждого запроса сессии.
Управление ёмкостью: понимание сессий в развёртывании
Управление ёмкостью развёртывания зависит от основного решения, основанного на ваших конкретных потребностях. Мы управляем сокетами на нашей стороне, заполняя их до определённого предела. Вам нужно лишь указать, как вы хотите, чтобы эти сокеты были заполнены.
Мы предлагаем два варианта: сеансового типа места сессия или матчевого типа сессия. Мы поможем вам понять различия между этими типами сессий и выбрать тот, который лучше всего соответствует вашим требованиям по управлению ёмкостью развёртывания.
Сессия типа места
С помощью сеансового типа места сессии каждый игрок в ваших сессиях в развёртывании занимает одно место в сокете. Например, если в вашем развёртывании десять сокетов, одиночный игрок и группа из четырёх игроков займут пять сокетов из десяти. Если вы удалите сессию группы, количество использованных сокетов теперь будет равно одному.
Сессия типа матча
С помощью матчевого типа сессии каждая сессия в вашем развёртывании занимает одно место в сокете независимо от того, сколько игроков в сессии. Например, если в вашем развёртывании пять сокетов, у вас может быть три матча по десять игроков, и это будет считаться тремя сокетами из пяти, даже если у вас подключено 30 игроков. Если вы удалите сессии с десятью игроками, количество использованных сокетов теперь будет равно двум.
Этот тип может быть особенно полезен, если у игрового сервера высокие накладные требования к ресурсам. Например, вам может понадобиться 2 vCPU и 4 ГБ ОЗУ, чтобы загрузить множество ресурсов, но после их загрузки ваш сервер может обрабатывать несколько игр на том же экземпляре. Такой подход может значительно сэкономить вам деньги в долгосрочной перспективе, поскольку не требуется выделять 2 vCPU и 4 ГБ ОЗУ для каждой игры. Вместо этого вы можете распределить стоимость между несколькими матч-сессиями на одном развёртывании.
В обоих случаях, когда вы создаёте запрос на сессию, мы обеспечим выбор лучшего развёртывания для размещения вашей сессии, которое имеет достаточно доступных сокетов, основываясь на выбранном вами типе сессии (либо "сеансового типа места", либо "матчевого типа").
Создание и управление развёртываниями для сессий
На предыдущей странице мы упомянули опцию автоматизации процесса создания развёртываний для размещения ваших сессий. Существует два способа создать развёртывания для ваших сессий.
Пользовательская бэкенд-система: Вы можете создать систему в вашем бэкенде, которая будет создавать развёртывания по мере необходимости для ваших сессий. Этот подход может быть более подходящим, если у вас есть специфические требования или вы нуждаетесь в большем контроле над процессом развёртывания.
Опция автозапуска: Альтернативно, вы можете активировать
autodeployопцию в вашей версии приложения. Это автоматизирует процесс создания развёртываний для ваших сессий, делая его более удобным и упрощённым. Каждый раз при запросе сессии, если нет доступного развёртывания, система автоматически запустит новое за считанные секунды и затем привяжет к нему вашу сессию. Это гарантирует, что ваши сессии будут размещены своевременно, даже если на момент запроса нет доступных развёртываний.
Эта опция чрезвычайно мощная, поскольку позволяет быстро разворачивать игровые серверы в местах, где они нужны вашим игрокам. При активировании она распределяет нагрузку по нескольким локациям и балансирует её со временем, группируя игроков на самых популярных серверах и автоматически закрывая наименее популярные (см. следующий раздел).
Автоматически управляя инфраструктурой, вы можете значительно сэкономить в долгосрочной перспективе без какого-либо вмешательства с вашей стороны. Это полностью автоматизированная инфраструктура игровых серверов, которая поможет оптимизировать использование и сократить затраты.
При использовании autodeploy опции, если нет доступных развёртываний и одновременно запрошено несколько сессий, система создаст новое развёртывание для каждой сессии.
Это происходит потому, что все сессии проверяют наличие доступных развёртываний, и в тот момент ответ для всех них отрицателен из-за короткого временного интервала. Следовательно, autodeploy опция инициирует несколько развёртываний.
Выбор наилучшего развёртывания для запросов сессий
Существует два основных способа определения того, какое развёртывание будет размещать вашу сессию.
Ручное назначение: В этом подходе ваш бэкенд будет знать о доступных развёртываниях и выберет конкретное для размещения вашей сессии. Это даёт вам полный контроль над процессом выбора развёртывания.
Это может быть особенно полезно, если у вас есть лобби-система, где игроки могут выбирать сервер, к которому хотят присоединиться. Система сокетов (ёмкости) может быть использована для отображения того, сколько места доступно на каждом сервере.
Запатентованная система принятия решений Edgegap: В качестве альтернативы вы можете позволить системе принятия решений Edgegap выбрать лучшее развёртывание на основе телеметрии ваших игроков. Эта система использует продвинутые алгоритмы и аналитические данные для динамического определения оптимального развёртывания для размещения вашей сессии.
Оба подхода являются допустимыми и могут быть выбраны в зависимости от ваших конкретных потребностей и требований.
Если вы выбираете вариант 2, мы в приоритете группируем игроков в определённом географическом диапазоне по сравнению с телеметрией при выборе потенциального развёртывания для ваших сессий, поскольку обычно играть в мультиплеер с другими людьми веселее, чем в одиночку. Это особенно актуально для MMO-игр, где несколько серверов с небольшим количеством игроков могут быть нежелательны — и это перспектива, в которую мы верим.
Если в диапазоне не найдено подходящего развёртывания, мы сделаем полный запрос телеметрии, чтобы выбрать лучшее место для создания развёртывания и размещения вашей сессии. Рекомендуется активировать autodeploy опцию, чтобы избежать сбоя сессии из‑за отсутствия доступных развёртываний.
Пример реального использования
Давайте объясним это на примере. Представьте, что есть три развёртывания без сессий, расположенные в Нью-Йорке, Вашингтоне и Чикаго. У нас также есть развёртывание с активными сессиями (сервер с зелёным кружком), что означает, что есть игроки, с которыми можно поиграть. Теперь предположим, что два игрока хотят начать новую сессию.
На первый взгляд может показаться логичным разместить сессию в развёртывании в Нью-Йорке, так как оно ближе к одному из игроков. Однако мы отдаем приоритет группировке игроков вместе, чтобы избежать создания в основном пустых серверов. Поэтому, если есть другое развёртывание, например Вашингтон, которое географически лучше подходит для обоих игроков, мы разместим сессию там.

Существует несколько способов тонкой настройки выбора развёртываний. Один простой и часто используемый метод — указать по крайней мере континент в вашем запросе на сессию. Кроме того, в другом разделе мы рассмотрим возможности Селекторов, где вы можете фильтровать развёртывания с помощью системы тегов.
Последнее обновление
Это было полезно?

