Как организовать оркестрацию между микросервисами в Docker?
Здравствуйте, дорогие форумчане. Мною была поставлена задача, однако я незнаю как её решить. Суть: Несколько микросервисов в докер-контейнерах, один из которых spring boot. Цель - передача данных от контейнера к контейнеру. Например: Заполняем форму в web-UI. Далее передача на спрингбут в контроллер. Далее контроллер отправляет в сервис парсера. Далее сервис парсера отправляет в сервис маппера. Далее маппер отправляет в БД. Попробовал потыкать в Kafka и JMS, однако непонимаю многих вещей, пожалуйста, помогите разобраться с сетевым взаимодействием между контейнеров. Вопрос: Какие обязательные условия для обеспечения этого взаимодействия контейнеров внутри Docker
1) архитектура так себе...
2) каждый сервис должен знать куда стучаться - посмотрите на consul.io или zookeper
3) не осилили кафку, начните с чего полегче, например apache pulsar
4) Ну и да, в докере оркестрация такая же, как и без него. Но можно и docker-composer
5) увы, микросервисы часто сложнее, чем кажутся.
Если приложение небольшое, то стоит разбивать нго не по формам, а по функционалу. Да и «монолит» можно сделать модульным. А при нагрузках эти модули выносить на отдельные инстансы. Ну и микросервисы, если и делать, то максимально независимыми друг от друга. Идея не передавать данные из одного в другой, а обогащать и агрегировать эти данные.
И емли хорошо архитектуру не продумать заранее, то получите головную боль большую, чем при монолите.
Делайте слабо связанный проект, используйте шины сообщений, распределенные базы данных, отделяйте бекэнды от фронта. Идите от данных. Уходите от REST. В сторону graphql или grpc или подобного.