Брокеры

Брокеры

Вопросы и материалы по теме «Брокеры»

18 音声 · 4:55

Olga·

Что такое брокер сообщений?

0:30
Брокер сообщений — это система, которая передает данные между сервисами через сообщения. Он используется, когда сервисы взаимодействуют асинхронно — то есть не ждут ответа сразу. Брокер принимает сообщение от одного сервиса и передает его другому. Пример: Сервис заказов отправляет событие "заказ создан". Сервис уведомлений получает это сообщение и отправляет email.

Зачем нужны брокеры?

0:20
Брокеры позволяют: Разделить систему на независимые сервисы. Обрабатывать события асинхронно. Снижать нагрузку. Повышать устойчивость системы. Пример: Если сервис уведомлений упал, сообщения не теряются, а обрабатываются позже.

Чем отличается синхронное и асинхронное взаимодействие?

0:22
Синхронное: Клиент ждет ответ сразу. Пример — HTTP API. Асинхронное: Сервис отправляет сообщение и не ждет ответа. Пример — через брокер. Пример: Создание заказа → HTTP. Отправка уведомления → брокер.

Что такое очередь сообщений?

0:16
Очередь — это структура, в которой сообщения обрабатываются по порядку. Producer — отправляет сообщение. Consumer — получает сообщение. Пример: Очередь заказов: Сообщения обрабатываются по одному.

Что такое Kafka?

0:21
Kafka — это распределенный брокер сообщений, ориентированный на потоковую обработку данных. Особенности: Высокая производительность. Работа с потоками данных. Хранение сообщений. Используется для: Логов. Аналитики. Событийных систем.

Что такое RabbitMQ?

0:14
RabbitMQ — это брокер сообщений с очередями. Особенности: Гарантированная доставка. Гибкая маршрутизация сообщений. Используется для: Очередей задач. Интеграций между сервисами.

Что такое producer и consumer?

0:12
Producer — отправляет сообщение. Consumer — получает и обрабатывает сообщение. Пример: Сервис заказов — producer. Сервис уведомлений — consumer.

Что такое топик (Kafka) и очередь (RabbitMQ)?

0:12
Kafka: Топик — это поток сообщений. RabbitMQ: Очередь — место хранения сообщений. Пример: Топик "orders" содержит события заказов.

Что такое offset в Kafka?

0:11
Offset — это позиция сообщения в топике. Consumer читает сообщения по offset. Пример: Consumer прочитал до offset 100 → дальше читает с 101.

Какие типичные баги бывают при работе с брокерами?

0:12
Сообщение не отправилось. Сообщение не обработалось. Дубли сообщений. Нарушение порядка. Потеря данных. Пример: Заказ создан, но уведомление не пришло.

Как тестировать системы с брокерами?

0:17
Проверять: Отправку сообщения. Получение сообщения. Обработку сообщения. Данные внутри сообщения. Ошибки обработки. Пример: Создаем заказ → проверяем, появилось ли сообщение в брокере.

Как проверить, что сообщение отправилось?

0:12
Проверить: Логи. Kafka UI / RabbitMQ UI. Консьюмер. Пример: После создания заказа проверяем топик orders.

Как проверить обработку сообщения?

0:11
Проверить: Действие после обработки. Логи consumer. Изменения в БД. Пример: После события → запись появилась в таблице notifications.

Как найти проблему в цепочке через брокер?

0:12
Нужно проверить: Сервис-отправитель. Брокер. Consumer. Логи. Данные. Пример: Сообщение есть в брокере → значит проблема в consumer.

Как объяснить работу брокера на собесе?

0:19
Брокер сообщений — это промежуточный слой между сервисами, который позволяет им обмениваться данными асинхронно. Например, при создании заказа сервис отправляет событие в брокер, а другие сервисы (уведомления, аналитика) обрабатывают его независимо.

Пример задачи с собеса: "Почему пользователь не получил уведомление?"

0:30
Логика проверки: 1. Проверить, создался ли заказ (БД). 2. Проверить, отправилось ли сообщение в брокер. 3. Проверить, есть ли сообщение в топике/очереди. 4. Проверить, обработал ли consumer сообщение. 5. Проверить логи. Вывод: Если сообщение есть в брокере, но нет уведомления → проблема в consumer.

Пример задачи: "Как проверить, что события не теряются?"

0:14
Проверить: Количество отправленных сообщений. Количество обработанных сообщений. Сравнить данные. Пример: 10 заказов → должно быть 10 событий. Если меньше → потеря сообщений.

Пример задачи: "Как найти дубликаты сообщений?"

0:10
Проверить: Повторные записи в БД. Повторные события. Пример: Один заказ → два уведомления → проблема с повторной обработкой.