Есть ли способ подписаться на Redis Streams, аналогичный Redis pub / sub? - PullRequest
0 голосов
/ 01 августа 2020

Я создаю конвейер данных, который читает MySQL двоичные журналы в реальном времени, используя Maxwell Daemon , а Maxwell Daemon отправляет данные в потоки Redis. Я создал клиент, который потребляет данные из потоков Redis, обрабатывает их. В настоящее время я опрашиваю XREAD , используя бесконечное l oop с временем ожидания в несколько миллисекунд, чтобы потреблять данные из потока, но я считаю это неэффективным решением.

Я искал способ, где я могу каким-то образом подписаться на поток Redis и получать уведомления всякий раз, когда в поток добавляются новые записи, и натолкнулся на эту проблему GitHub, где они говорят об использовании Redis pub / sub вместе с потоками для достижения этой функциональности.

Есть ли более эффективный способ создания архитектуры этой системы?

1 Ответ

0 голосов
/ 01 августа 2020

Да, используйте аргумент BLOCK для XREAD, и вы получите такую ​​же «эффективность».

Документация: https://redis.io/commands/xread и https://redis.io/topics/streams-intro#listening - для-новых-предметов-с-xread

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...