Какие способы взаимодействия между микросервисами вы знаете?
Уровень: Senior
Ответ
Микросервисы могут взаимодействовать синхронно и асинхронно. Синхронные способы: HTTP/REST API — один сервис делает HTTP-запрос к другому (обычно RESTful JSON API), gRPC — бинарный протокол поверх HTTP/2 с автогенерацией кода (хорош для строго типизированного, быстрого RPC). Асинхронные способы: обмен сообщениями через брокеры (RabbitMQ, Apache Kafka, Amazon SQS) — сервис публикует сообщение в очередь/топик, другой сервис (или компоненты) подписывается и получает эти сообщения для обработки (это позволяет декуплировать их по времени и нагрузке); события (Event-Driven Architecture) — сервисы рассылают события о совершённых действиях, а другие, подпишившись, реагируют (например, обновляют свои данные). Выбор зависит от задач: для запроса данных и получения ответа подойдёт синхронный REST/RPC, а для декорреляции и масштабирования часто используют асинхронные очереди и сообщения.