214 похожих чатов

Подскажите пожалуйста. Как лучше запилить коммуникацию серверов? Пытаюсь запилить сервис для

авторизации (+администрирования) в игру через "главное API". Но игровых серверов может быть от 2х до n.

Цель: главное API передаёт (например) название метода и аргументы на "gameserver" и там уже происходит отработка и ответ (успех+данные/нет)
Иногда нужно и в обратную сторону также передать данные.

Уже как-то пилил такую реализацию RPC с MassTransit (RabbitMQ), но настройка сервера, очередей, как-то очень муторно. Или это правильный вариант?

Просто особо не вникал в gRPC и не вникал как у людей сервера общаются

5 ответов

16 просмотров
Sed- Автор вопроса

Илья в своё время классно подсказывал. Куда он пропал? Или тут уже давно все чисто на лайтах сидят?

Sed
Илья в своё время классно подсказывал. Куда он про...

может нет в онлайне щас, да и конечно на лайте, если кто знает то ответит. Но у тебя вопрос типа "бля я не вникал, так правильно или расскажите мне все пж". Но насколько я понял тут не много гейдевов

Sed- Автор вопроса
Aniki Hi$ok@ 🌈 Z 🐀
может нет в онлайне щас, да и конечно на лайте, ес...

Вопрос достаточно конкретный и вообще не касается геймдева, подробности только для ясности взаимодействия. Вопрос прост: как микросервисам/серверам общаться между собой, когда они на разных серверах. Только оптимальный вариант под ситуацию, а не тупо "REST ебаш" "Не вникал" я только в gRPC, это один из МНОЖЕСТВА вариантов которые я не могу знать или найти. Потому сюда и задал вопрос.

Можно сделать чтоб клиент просто делал запрос на мейн инстанс, потом отсылал ответ на нужный сервер, потом клиент у человека отрисовывает что получил. Кролик врядли тут подойдёт, тем более если захочешь дальше масштабироваться. Также Кафка была бы лучше из соображений оптимизации затрачиваемых ресурсов и из-за того что у тебя будет (я полагаю) много евент емитеров которые будут стримом что-то отсылать Grpc отличный транспорт тут, можешь ещё посмотреть в сторону протобафа Делать общение чисто на ресте это тупик мне кажется, ты просто упрешься в ограничения реста

Sed- Автор вопроса
єєає)
Можно сделать чтоб клиент просто делал запрос на м...

Посидел, обдумал несколько раз: 1. Можно на обоих сторонах реализовать REST тупо на http c фильтом ip откуда прилетает запрос. 2. Почему? В основном этом синхронные запросы: [mainAPI | получить список подробный персонажей игрока: id,наказания,деньги,предметы]->[gameServer | где будет описан метод работы с БД этого игрового сервера]. Такие же запросы могут быть - выдать деньги, кикнуть игрока и т.п. 3. Кафку можно позже реализовывать, если нужно будет постоянно получать логи с серверов или что-то в этом роде. (много информации) 4. REST запросов думаю не больше 10к одновременно может быть от пользователей: авторизация, регистрация, получения списка файлов, получения ссылок для скачивания файлов, получения списка персонажей, выход. Между серверами только: получить токен для входа в игру + команды для администраторов (манипуляции с персонажами игроков) нормальный же подход?

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

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
Карта сайта