Заметки бизнес-аналитика
Главная › Системный анализ › Интеграции и REST API

Системный аналитик. Часть 4. Синхронные и асинхронные интеграции: REST, gRPC, Kafka, RabbitMQ

Конспект статьи. Автор оригинала: Николай (nick_oldman)

Обзор способов интеграции: файлы, общая БД, RPC, обмен сообщениями, API.

REST, JSON Schema, OpenAPI

Принципы REST: клиент-сервер, отсутствие состояния на сервере, кешируемость, уникальный URL ресурса, единый интерфейс через методы, осмысленные коды состояния. Идемпотентны GET, PUT, DELETE, HEAD, OPTIONS; POST — нет. JSON Schema описывает типы, обязательность и ограничения полей. OpenAPI — стандарт описания API: пути, методы, параметры (path, query, header, cookie), requestBody, responses, components и $ref.

gRPC

Протокол Google: контракт в .proto (Protobuf), транспорт HTTP/2, четыре режима (унарный, серверный, клиентский и двунаправленный поток). Оправдан при больших объёмах, высокой нагрузке и стриминге. Минус — бинарный формат сложнее логировать.

Брокеры

Продюсеры пишут, консюмеры читают, друг о друге не знают. Kafka — pull, RabbitMQ — push. Гарантии: at least once (дубли, нужна идемпотентность), at most once (потери), exactly once.

  • Kafka: топики делятся на партиции, порядок — внутри партиции по offset, хранение по времени или объёму. Аналитик определяет формат, топики, хранение и ключ партиционирования.
  • RabbitMQ: протокол AMQP, exchange типов direct, topic, fanout, headers; очереди classic, quorum, stream. Аналитик определяет payload, durable или transient, ключи маршрутизации.

WebSocket

Двусторонняя связь в реальном времени поверх TCP; начинается с HTTP-рукопожатия и ответа 101 Switching Protocols.

Источник: Системный аналитик. Часть 4. Синхронные и асинхронные интеграции: REST, gRPC, Kafka, RabbitMQ
Автор: Николай (nick_oldman)
Это конспект, пересказ основных идей. Полный текст, иллюстрации и примеры читайте в оригинальной статье.