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

Микросервисная архитектура для онлайн игр. Проблема асинхронности?

Решил переделать сервер своей игры из монолита в микросервисы. Пишу на nodejs связь, связь между сервисами nanomsg. Решил начать с того что выделить в отдельный сервис Ботов и всю их логику передвижения, состояния. Примерно ботов около 10000.
Раньше было так, что для каждого пользователя ищутся ближайшие боты и отправляются ему их координаты, в пределах одного сервиса это не составляет проблем, при микросервисном подходе координаты ботов будут приходить асинхронно и теряться. Как в такой ситуации лучше подступить? Возможно кто то сталкивался? Буду благодарен за любой совет или ссылку на статью.
  • Вопрос задан
  • 540 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Мало информации о том, что есть и чего хочется. Но в целом, микросервисы не предполагают асинхронности по умолчанию. Но даже с ней вроде всё выглядит легко:
1. Поднимаем сервис регистрации ботов на базе любого сервера очередей
2. Пользователи подписываются на сообщения о появления бота в их округе
3. Боты отправляют свои координаты на сервис, не дожидаясь ответа (он в принципе и не нужен)
4. Сервис уведомляет пользователей об интересующих их ботах.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Вы же под ботами понимаете какую-то систему принятия решений, так?

Если так - то это просто один из компонентов системы, связанный с другими через ивенты. А ивенты уже можно пробрасывать асинхронно через шину сообщений. У вас будет просто диспатчер ивентов который может раскидывать оные по процессам. Проблема будет только в синхронизации состояний но это решаемо.
Ответ написан
Ваш ответ на вопрос

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

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