Redis Streams для хранения событий миллионов пользователей и их извлечения при входе пользователя в систему.
Мне нужно реализовать микросервис, где он потребляет события Kafka для миллионов пользователей со временем существования 10 минут, сохраняет их в некоторой базе данных, например Redis, и когда пользователь подключается к микросервису, он должен предоставлять все специфичные для пользователя события. и подключенному пользователю. Также необходимо предоставлять все события в реальном времени, пока пользователь подключен к службе.
Время жизни этих событий составляет 10 минут, а структура событий выглядит следующим образом:
{ "event":"propChn", "refId":"01HCFRNFXH8VR90MAE21M0E7NQ" }
Я рассматриваю Redis-Streams для этого варианта использования. Я новичок в Redis-потоках, и в настоящее время я думаю создать поток для каждого пользователя, чтобы я мог добавлять пользовательские события в поток, специфичный для пользователя, используяxadd
а затем получить их, используяxread
, когда пользователь подключается к микросервису. Однако мне также необходимо читать все события в реальном времени, пока пользователь подключен к моему микросервису. К экземплярам микросервиса могут быть подключены миллионы пользователей.
Есть ли эффективный способ получения событий в реальном времени для всех подключенных пользователей? Я читал о группе потребителей Redis, есть ли какое-либо ограничение на количество групп потребителей? скажем, 10000 пользователей, подключенных к услуге, то есть 10000 групп потребителей, ожидающих событий из соответствующего пользовательского потока.
Примечание. Я использую библиотеку vertx-redis-client.