Что скажете об архитектуре?

ae5c78a954a84fe6a18b7798be6ca6b5.png

main -> вьюшка на js
http rpc -> там тупо прокси между http и tcp rpc (на основе fasthttp). Все остальные сервисы
работают по RpcTcp
auth service -> сервис отвечает за раюоту с учётками узеров. У него своя бд (auth db)
возвращает jwt
service all function -> там все функции которые по идеи не создают большой нагрузки. Как
только какая то функция из того сервиса отнимет 30% обращений к
сервису она будет перенесена в отдельный сервис.
battle service -> этот сервер просто знает на какой ноде создана комната (battle node)
battle bot -> Бот. Работает со всеми нодами.

chat * аналогичен battle части только вместо бота там авто модератор. Он модерит
публичные чаты автоматом (примитивный фильтр мата за который автоматом банит в
чате)

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

Бот и модератор маштабируются путём указания адресов к ним в конфигах ноды)
  • Вопрос задан
  • 1088 просмотров
Решения вопроса 3
@lubezniy
Авторизация не масштабируется? По идее, к ней может быть максимальное количество запросов.
Ответ написан
kumaxim
@kumaxim
Web-программист
Как сказал lubezniy посмотри авторизацию. Ты пишешь про то, что к ней "минимальное количество запросов", ок, давай так считать, а ты учел вариант, что тебя кто-то брутить будет, что могут целенаправлено валить сервис авторизации? Авторизация легла - считай легло все остальное. Обрати на этот сервис доп.внимание. Продумай механизм возможного масштабирования, способы защиты от перегрузки/падения.

Далее ты пишешь, что у тебя chat & battle фактически одно и то же. Так у меня вопрос, зачем их тогда связывать с глобальными сервисами? Сделай общий тип room, который в зависимости от типа будет привязываться либо на chat либо на battle service.
Ответ написан
@Gizmothron
Вроде заумно сделано. Серьезно поработал.
Но нет явного горизонтального масштабированияю

UPD:
В комментариях обсудили всякие технические вопросы.

А вот по организации логики в мультиплеере
https://habrahabr.ru/post/302394/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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