Redis Streams предоставляет журнал записей, consumer groups и подтверждения обработки. Это удобно для небольшого событийного контура, но не делает Redis полной заменой Kafka по хранению и масштабированию.
Как использовать Redis Streams для построения легковесного аналога Kafka и каковы ограничения такого подхода?
Redis Streams предоставляет журнал записей, consumer groups и подтверждения обработки. Это удобно для небольшого событийного контура, но не делает Redis полной заменой Kafka по хранению и масштабированию.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Redis Streams предоставляет журнал записей, consumer groups и подтверждения обработки. Это удобно для небольшого событийного контура, но не делает Redis полной заменой Kafka по хранению и масштабированию.
Продюсер пишет через XADD, группа читает XREADGROUP, после успешной обработки выполняется XACK. Зависшие pending-сообщения нужно возвращать в работу через claim-механизм; обработчик делают идемпотентным. Настраивают retention, persistence и мониторинг lag. Один stream-ключ размещается на одном shard, поэтому масштабирование через несколько потоков и порядок между ними проектируются отдельно. Обрезка истории может удалить ещё нужные данные. Долговечность зависит от настроек и сценария failover; не обещайте exactly-once или бессрочный дешёвый replay.
Источник: redis.io.