Чем паттерн Push-based в RabbitMQ концептуально отличается от Pull-based в Kafka с точки зрения нагрузки на брокер?

RabbitMQ обычно доставляет сообщения активным consumers с учётом prefetch; Kafka consumer сам запрашивает порции данных. Нагрузка определяется также батчами, подтверждениями и скоростью клиентов.

Короткий ответ

Что ответить на собеседовании

RabbitMQ обычно доставляет сообщения активным consumers с учётом prefetch; Kafka consumer сам запрашивает порции данных. Нагрузка определяется также батчами, подтверждениями и скоростью клиентов.

Подробный разбор

Ответ с пояснениями

RabbitMQ обычно доставляет сообщения активным consumers с учётом prefetch; Kafka consumer сам запрашивает порции данных. Нагрузка определяется также батчами, подтверждениями и скоростью клиентов.

В push-модели брокер знает о подписчиках и управляет доставкой, ограничивая число неподтверждённых сообщений. Медленный consumer не должен получать бесконечный поток: для этого важны prefetch и backpressure. В pull-модели клиент управляет частотой и объёмом fetch, а ожидание на сервере позволяет избежать постоянных пустых запросов. Нельзя заключить, что push всегда тяжелее или pull всегда дешевле: сравнивают размер сообщений, репликацию, batching, сеть и требования к задержке.

Источник: www.rabbitmq.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее