Задать вопрос
lightalex
@lightalex

Как правильно распределять трафик на сервера?

Доброго времени суток!
Есть IP на который идет куча пакетов данных
Эти пакеты данных распределяются на определенные порты (для каждого соединения выбирается подходящий порт)
Всем этим сейчас занимается программа на Java
На всякий случай уточню что сейчас в Java программу могут слаться команды на переключение портов. Т.е. все пакеты начинают слаться на другой порт.
На данный момент если ложится эта программа или сервер на котором находится программа, то проект полностью накрывается медным тазом
Вопрос - как сделать этот центральный узел более надежным?
Как это реализуется в больших проектах?
P.S. Центральный узел получается очень высоконагруженным. Речь идет об онлайн игре. Пакетов шлется хренова туча...
P.S.S. Прошу прощение если вопрос кажется детским. Увы в теме сетей практически ноль. Так что если вам не сложно - объясните попроще :)
  • Вопрос задан
  • 665 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 4
yellow79
@yellow79
Senior Software Engineer
Во всех компаниях, где мне доводилось работать, эту роль выполнял Nginx. Если фильтрация соединений сложнее чем распарсить url, то напишите на Lua обработчик ваших соединений. Nginx+Lua достаточно неубиваемая связка.
Ответ написан
Griboks
@Griboks
Надёжность - это комплексное понятие. Её можно повысить разными способами. В данном случае разумно использовать резервирование и диагностику. Резервировать можно как саму программу, так и целый сервер. Тогда диагностика будет подразумевать своевременное обнаружение сбоя в работе, переключение трафика на резервный сервер и запуск процесса восстановления. Имеет смысл проанализировать, из-за чего происходят сбои и, если, например, всё дело в высокой нагрузке, использовать гибкое распределение ресурсов по нескольким серверам. Также необходимо вычислить какие именно элементы приводят к сбоям и, соответственно, зарезервировать их.
Ответ написан
Я так понимаю, перед вашими игровыми серверами необходимо установить сервер с HAProxy, который будет равномерно распределять пакеты (или сессии) между всеми вашими игровыми серверами.
Ответ написан
Есть IP на который идет куча пакетов данных
Куча - это сколько pps?

На данный момент если ложится эта программа или сервер на котором находится программа, то проект полностью накрывается медным тазом
Расследование, почему постоянно при повышении нагрузки программа ложится, было? Источник отказа найден? Виновный наказан?

Вопрос - как сделать этот центральный узел более надежным?
Как это реализуется в больших проектах?
В больших проектах, где шишки уже набиты и мазоли натёрты, в первую очередь думают о высокой доступности, надёжности, масштабируемости и безопасности, а не о CD/DI, системах автоматизации чего всего подряд, докере и всяких новомодных фичах.
Смотри, пробуй нормальный баллансировщик.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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