Обслуживать несколько стран? [закрыто]

Я запускаю игровой сервер на Linux-машине с единственным IP-адресом, замаскированным прокси-сервером. Коробка расположена в центре обработки данных в Лос-Анджелесе, и у игроков из некоторых других стран наблюдается высокий пинг по сравнению с игроками из США.

Можно ли разместить сервер в одном месте, но предоставить такой же опыт игрокам в других странах?

Например, au.example.com , us.example.com , eu.example.com .

Возможно ли это? Мне нужен 1 экземпляр сервера, а не несколько экземпляров по всему миру (это снизит количество игроков на сервере).

-3
задан 19 April 2015 в 21:53
1 ответ

Что ж, проблема, как предполагает один комментатор, в физике.

Например, длина одного из подводных кабелей из США в Австралию составляет около 12500 км. Данные должны пройти этот путь дважды, что составляет 25000 км. И это только кабель. Вам нужно будет добавить больше волокон в США и Австралии.

Типичное одномодовое волокно имеет показатель преломления около 1,444 (свет распространяется в волокне в 1,444 раза медленнее, чем в вакууме).

25000 км / (c / 1.444) ~ 120 мс

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

Более того, ссылки предназначены не только для ваших игр, поэтому на большинстве маршрутизаторов есть буферы, которые добавят дополнительные задержки (различной длины).

И не заставляйте меня начинать насчет того, как данные могут перемещаться, если условия не идеальны (в основном из-за сбоев). Затем данные могут перемещаться из Лос-Анджелеса в Нью-Йорк, в Сан-Франциско, в Токио, в Нью-Дели и в Сидней (просто пример). И чем дольше вы пытаетесь достичь, тем выше вероятность возникновения этих проблем и они станут более выраженными.

Поскольку я ожидаю, что игра, о которой вы говорите, представляет собой своего рода опыт работы в реальном времени (именно поэтому вы хотите уменьшить задержки в сети), вряд ли возможно использовать какой-либо прокси или CDN для определения задержек клиентов. ниже.

Вы можете рассмотреть возможность использования какого-либо виртуального / облачного хостинга для запуска небольших экземпляров в местах с не очень высокой нагрузкой. Переход на выделенные серверы / оборудование по мере роста базы игроков.

Если мое предположение о том, что это работает в реальном времени, неверно, пожалуйста, обновите свои вопросы, указав подробности о том, что это за тип / тип игры, как она работает или, еще лучше, назовите игры. (кстати, вы автор игры - можете ли вы изменить игру - или просто запускаете сервер?)

2
ответ дан 5 December 2019 в 21:55

Теги

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