Redis можна використовувати як паб у режимі реального часу так само, як Кафку.
Мене бентежить, який із них використовувати.
Будь-який варіант використання буде чудовою підмогою.
Redis можна використовувати як паб у режимі реального часу так само, як Кафку.
Мене бентежить, який із них використовувати.
Будь-який варіант використання буде чудовою підмогою.
Відповіді:
Redis pub-sub в основному нагадує систему пожежі і забуття, де всі створені вами повідомлення будуть доставлені відразу всім споживачам, а дані ніде не зберігаються. У вас є обмеження в пам’яті щодо Редіса. Крім того, кількість виробників та споживачів може вплинути на ефективність роботи Redis.
З іншого боку, Kafka - це розподілений журнал з високою пропускною здатністю, який можна використовувати як чергу. Тут може виробляти будь-яку кількість користувачів, а споживачі можуть споживати їх у будь-який час, коли їм заманеться. Він також забезпечує стійкість повідомлень, що надсилаються через чергу.
Остаточний результат:
Використовуйте Redis:
Використовуйте kafka:
redis
щоб повідомлення, надіслані, але ще не оброблені , не були втрачені після перезапуску redis
. Хоча це можливо зробити, redis
не дозволяє тримати (або продовжувати повторно використовувати слова @Karthikeyan) поза рамкою.
Версія Redis 5.0+ надає структуру даних Stream . Це може розглядатися як структура даних журналу з гарантіями доставки. Він пропонує набір блокувальних операцій, що дозволяють споживачам чекати нових даних, доданих до потоку виробниками, і на додаток до цього концепцію, яка називається Групи споживачів.
В основному структура Stream забезпечує ті самі можливості, що і Kafka.
Ось документація https://redis.io/topics/streams-intro
Цю функцію підтримують два найпопулярніші клієнти Java: Redisson та Jedis