Когда использовать REST API, когда использовать Messaging Service (например, RabbitMQ) для обмена данными между микросервисами? - PullRequest
1 голос
/ 18 марта 2020

Я строю систему с использованием архитектуры микросервисов, используя RabbitMQ в качестве службы обмена сообщениями. У меня есть случаи использования связи между двумя службами, и я сталкиваюсь с трудностями использования RabbitMQ для его реализации.

Cart-Service необходимо получить данные из Product-Service. В этом случае Cart-Service может отправить сообщение, Product-Service подписывается на это сообщение. Но я не нахожу способа для Product-Service отправить данные обратно в Cart-Service.

Можете ли вы сообщить мне, верен ли мой подход к использованию RabbitMQ в этом случае? Любой другой подход, который я должен применить в этом случае использования? Заранее спасибо.

1 Ответ

2 голосов
/ 18 марта 2020

Используйте соглашение о присвоении имен на основе событий для маршрутов сообщений rabbitMQ. Формат может быть <service>.<entity>.<action>, например, «cart.item.added».

Служба корзины подписывается на product.*.* сообщения, Служба продукта - на cart.*.*.

Рабочий процесс может быть следующим:

  • корзина: публикует сообщение «cart.item.added».
  • product: получает сообщение «cart.item.added», публикует «product.product». прочитайте «one
  • cart: получает сообщение« product.product.read »с информацией о продукте.

Если вы используете Node.js для микросервисов, вы можете прочитать больше о том, как создать прототип обмена сообщениями RabbitMQ здесь:

https://medium.com/@krawa76 / bootstrap - node-js -microservice-stack-4a348db38e51

...