Как стать автором
Обновить

Почему мы не стали делать идеально: как менялась инфраструктура серверов War Robots

Время на прочтение5 мин
Количество просмотров20K
Всего голосов 52: ↑51 и ↓1+50
Комментарии16

Комментарии 16

Классная статья! Понравилось, как Вы версионность инфраструктуры описали. Емко и «по существу». Добавил в закладки.
Если вкратце, то целый зоопарк:
Master/game servers — c#, akka, photon engine
Profile servers — Java 8, Guice, Resteasy, Hazelcast, Cassandra
Microservices clan/league/matchmaking/communication — scala, akka, postgresql, scalikejdbc, cassandra, phantom
НЛО прилетело и опубликовало эту надпись здесь
Исторически сложилось. У нас AppMetr был на кассандре. Посмотрели — модно, молодежно и масштабируемо. И запилили.
Ну и еще в пользу кассандры можно записать то, что она децентрализованная, а mongo — это master-slave.

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

Спасибо за статью! Редко на хабре увидишь рассказ о реальной разработке, так как все боятся, что за «неидеальность» камнями закидают:)
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за статью!

Расскажите, пожалуйста, как у вас сделана балансировка? Как клиент выбирает, на какие сервисы идти, например.
С профиль-сервера клиент получает список мастер-серверов, пингует их и устанавливает подключение с «победителем» (с тем, у кого пинг меньше). Мастер-сервер играет роль балансировщика и скидывает игрока на наименее загруженный гейм в регионе.
Спасибо за рассказ. Что такое Amazon RDS для Redis в квадратике Communication?
Amazon RDS для Redis это мой ляп, спасибо, что заметили, сейчас поправлю. Речь, конечно же, о aws.amazon.com/redis (Fully managed Redis on AWS)
Сергей я правильно понимаю, что для каждого региона, у вас были только отдельные инстансы MS MM и GS?
Серверы кланов лиг и прочего в одном экземпляре в вашей инфраструктуре.
MS >= 2 шт каждом регионе/платформе
MM >= 2 шт каждом регионе/платформе
ZK = 3 шт каждом регионе/платформе (ZK = ZooKeeper)
GS = [1… N] каждом регионе/платформе

Сервисы кланов, лиг и т.д. находятся в одном регионе, но их > 1, так как отказоустойчивость.
А как игроку узнать свой ping или к какому региону он подключен (или к какому подключиться с лучшим ping-ом)?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий