@qbudha
Чых-пыхдевелопер

Какие есть подходы к построению микросервисов на PHP?

Добрый день!

Я знаком с единственным способом приготовить микросервисы на PHP без асинхронщины (Swoole, Swoft и вот это всё) — это message queue. И схема там примерно такая — у нас есть сервис сообщений (Kafka, RabbitMq, etc.) и на него подписаны воркеры микросервисов, которые ловят события.
Такой подход решает проблему PHP — отсутствие корутин и асинхронной обработки — в кейсе последовательного вызова микросервисов друг другом, т.е. поток выполнения не ждет http response, а бросает событие в очередь и ок.
Подход применим на операции записи и имеет прямой профит, когда на одно событие должен прореагировать больше чем 1 микросервис. А операции чтения проходят через API Gateway прямым пробросом запроса до нужного микросервиса.

И соответственно, вопрос, как строить микросервисы с gRPC?

Вопросы, детально:
1. Это же http вызовы, правильно понимаю? Т.е. по факту схема остается прежней — рядом с контейнером PHP приложения должен крутиться nginx, который дёргает php-fpm?
2. Не могу понять как оно в таком случае дружит с неасинхронным поведением PHP? Или не дружит?
3. В чем профит?) Ну кроме архитектурных плюшек, когда сервисы теоретически можно проектировать как бандлы — высовывая наружу высокоуровневый интерфейс и вызывая его через gRPC.
  • Вопрос задан
  • 433 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы