Всем привет, у меня назрел вопрос про микросервисы и PHP:)
Я знаком с единственным способом приготовить микросервисы на PHP — это message queue. И схема там простая — есть брокер (Kafka, RabbitMq, etc.) и на него подписаны воркеры микросервисов, ловящие события.
Такой подход решает проблему последовательного вызова микросервисов друг другом, т.е. поток выполнения не ждет http response, а бросает событие в очередь и ок.
Подход применим на операции записи и имеет прямой профит, когда на одно событие должен прореагировать больше чем 1 микросервис. А операции чтения проходят через API Gateway прямым пробросом запроса до нужного микросервиса.
Эта телега выше чиста, чтоб мое текущее миропонимание закомитить.
И соответственно, вопрос, как строить микросервисы с gRPC? Какую роль оно играет?
Вопросы, детально:
1. Это же http вызовы, правильно понимаю? Т.е. по факту схема остается прежней — рядом с контейнером PHP приложения должен крутиться nginx, который дёргает php-fpm?
2. Не могу понять как оно в таком случае дружит с неасинхронным поведением PHP? Или не дружит?
3. В чем профит?) Я правильно понимаю, что микросервисы теоретически можно проектировать как бандлы — высовывать наружу высокоуровневый интерфейс и вызывать его через gRPC?