Redis можно использовать как паб-подписку в реальном времени, как и Kafka.
Я не понимаю, какой из них использовать и когда.
Любой вариант использования будет большим подспорьем.
Redis можно использовать как паб-подписку в реальном времени, как и Kafka.
Я не понимаю, какой из них использовать и когда.
Любой вариант использования будет большим подспорьем.
Ответы:
Redis pub-sub в основном похож на систему «запустил и забыл», где все созданные вами сообщения будут доставлены всем потребителям одновременно, а данные нигде не хранятся. У вас есть ограничение по памяти по отношению к Redis. Также количество производителей и потребителей может повлиять на производительность Redis.
Kafka, с другой стороны, представляет собой распределенный журнал с высокой пропускной способностью, который можно использовать в качестве очереди. Здесь любое количество пользователей может производить, а потребители могут потреблять в любое время, когда захотят. Он также обеспечивает постоянство сообщений, отправленных через очередь.
Заключительный дубль:
Используйте Redis:
Используйте кафку:
redis
чтобы сообщения, которые были отправлены, но еще не обработаны , не были потеряны после перезапуска redis
. Хотя это возможно, redis
не позволяет хранить (или продолжать повторно использовать слова @Karthikeyan) из коробки.
Версия Redis 5.0+ предоставляет структуру данных Stream . Это можно рассматривать как структуру данных журнала с гарантиями доставки. Он предлагает набор операций блокировки, позволяющих потребителям ждать новых данных, добавленных в поток производителями, и в дополнение к этому концепцию, называемую группами потребителей.
В основном структура Stream обеспечивает те же возможности, что и Kafka.
Вот документация https://redis.io/topics/streams-intro
Эту функцию поддерживают два самых популярных клиента Java: Redisson и Jedis.