nnnLik
@nnnLik
Capybara god

GRPC или RabbitMQ что лучше использовать для взаимодействия между API Gateway и микросервисами?

Разрабатываю архитектуру микросервисов с использованием API Gateway. Не могу определиться между gRPC и RabbitMQ для взаимодействия между API Gateway и микросервисами и между самими микросервисами. Что лучше выбрать и почему?
  • Вопрос задан
  • 457 просмотров
Решения вопроса 2
vabka
@vabka
Токсичный шарпист
1. Зачем вообще нужны усложнения, почему в рамках ваших сервисов не использовать rest api (обычный голый http с json-ами)?
2. grpc vs rabbitmq - это больше вопрос про синхронное vs асинхронное взаимодействие.
В зависимости от конкретного случая может быть лучше одно, а может быть лучше другое.
Как правило при использовании api gateway имеет место синхронное взаимодействие, тк ожидается, что сервер ответит на http-запрос в течение пары секунд (как правило меньше секунды).

При желании, можно поверх rabbitmq устроить rpc, но там всё равно будет более высокая нагрузка на железо, чем если бы напрямую происходил вызов.
Ответ написан
nykakdelishki
@nykakdelishki
Системный аналитик
Это два совершенно разных подхода не исключающих друг друга.
Один используется для синхронного получения данных, второй для асинхронного.

gRPC быстрее(приблизительно в 5 раз) REST за счет протокола передачи, это весомое преимущество в больших проектах. Но он не может общаться с фронтом.

RabbitMQ же идеально подходит для асинхронного(не исключая синхрон, но если делаешь синхрон на брокерах нужно понимать зачем ты это делаешь) взаимодействия (например для сборов логов), он уступает по многим параметрам Kafka, но для маленьких/средний проектов с EDA идеален.

Если это Pet проект рекомендую попробовать оба.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Без разницы, это видно уже на уровне вопроса. И да, делай монолит.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы