Я пытаюсь разработать проект с использованием микросервисов.
У меня есть несколько вопросов по этой теме c (что-то неясно):
1) Как реализовать взаимодействие с микросервисами?
A) HTTP: каждый микросервис предоставляет HTTP API, запросы широковещательной рассылки API GATEWAY.
B) MQTT: каждый паб / субсервис микросервиса для брокера
C) ОБА: но как понять, когда один лучше другого?
Должен ли я использовать протокол pub / sub в качестве стандарта даже для операций classi c, обычно выполняемых по HTTP? Например, у меня есть два микросервиса: веб-менеджмент и продукт-сервис . web-management - это панель, которая позволяет администратору добавлять, изменять, ... товары в своем электронном интернет-магазине. Допустим, мы хотим реализовать операцию createProduct. Это команда (в соответствии с различиями событий / команд), связь один к одному.
Я могу открыть API в product-service, скажем, (POST, "/ product "), которые добавляют новый продукт. Я также могу реализовать это преобразование команды в событие productCreationRequest . В этом случае: web-manage mnet publi sh это событие. product-service прослушивание productCreationRequest событий (а также productUpdateRequest, productGetEvents, ...), как только он получает уведомление, он выполняет операцию и генерирует событие productCreated .
Я считаю это дело пограничным. Например, служба последнего случая может прослушать productCreated и немедленно отправить сообщение (уведомление по электронной почте или pu sh) клиентам. Что вы думаете об этом сценарии использования?
2) Кто может быть действительным брокером (я буду использовать docker -композит или kubernetes для организации контейнерных микросервисов: язык принят, вероятно, java, javascript, python)?