[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-mikroservisy-kakie-sposoby-vzaimodeystviya-mikroservisov-sushchestvuyut":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},821,"kakie-sposoby-vzaimodeystviya-mikroservisov-sushchestvuyut",23,"mikroservisy","Микросервисы","🔗","Какие способы взаимодействия микросервисов существуют?","Взаимодействие микросервисов делится на два основных типа: синхронное (Request-Response) и асинхронное (Event-Driven).\n\n### Синхронное взаимодействие (Request-Response)\n\n- REST (HTTP) — наиболее распространённый способ. Простой, основан на стандартах HTTP.\n- gRPC — бинарный протокол на основе Protocol Buffers. Быстрее REST, поддерживает стриминг.\n- GraphQL — гибкие запросы, клиент сам определяет структуру ответа.\n\n### Асинхронное взаимодействие (Event-Driven)\n\n- Message Brokers (Kafka, RabbitMQ) — сервис публикует события, подписчики обрабатывают.\n- Event Streaming (Apache Kafka) — поток событий с возможностью повторного чтения.\n\n| Критерий | Синхронное | Асинхронное |\n|---|---|---|\n| Связность | Временная связность (оба сервиса должны быть доступны) | Слабая связность |\n| Latency | Суммируется по всей цепочке | Не блокирует вызывающую сторону |\n| Сложность | Простая реализация | Сложнее (idempotency, ordering) |\n| Отладка | Проще (request-response) | Сложнее (асинхронные цепочки) |\n| Надёжность | Ниже (cascade failures) | Выше (буферизация в брокере) |\n\n### Рекомендации\n\n- Для операций, требующих немедленного ответа (запрос баланса) — синхронное взаимодействие.\n- Для операций, допускающих задержку (отправка уведомления после платежа) — асинхронное.\n- В банковских системах предпочтительно асинхронное взаимодействие, так как оно обеспечивает лучшую отказоустойчивость.\n\n```\nСинхронное:          Асинхронное:\nA ──REST──► B        A ──event──► Kafka ──event──► B\nA ◄─resp.── B                                     (A не ждёт B)\n```\n\n> **На собеседовании:** покажите, что понимаете, когда какой способ применять. Ключевой критерий — нужен ли немедленный ответ. Частая ошибка — забыть упомянуть temporal coupling в синхронном взаимодействии.","","middle",[15],"microservices",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":20,"keywords":21,"schemaAnswer":20,"featuredSnippetReady":22},"Какие способы взаимодействия микросервисов существуют? — Gymterview","Взаимодействие микросервисов делится на два основных типа: синхронное (Request-Response) и асинхронное (Event-Driven).",[15,13],true]