Redis se puede usar como pub-sub en tiempo real al igual que Kafka.
Estoy confundido cuál usar cuando.
Cualquier caso de uso sería de gran ayuda.
Redis se puede usar como pub-sub en tiempo real al igual que Kafka.
Estoy confundido cuál usar cuando.
Cualquier caso de uso sería de gran ayuda.
Respuestas:
Redis pub-sub es principalmente como un sistema de incendio y olvido en el que todos los mensajes que produjo se entregarán a todos los consumidores a la vez y los datos no se guardan en ninguna parte. Tiene limitación en la memoria con respecto a Redis. Además, la cantidad de productores y consumidores puede afectar el rendimiento en Redis.
Kafka, por otro lado, es un registro distribuido de alto rendimiento que se puede utilizar como cola. Aquí cualquier número de usuarios puede producir y los consumidores pueden consumir en el momento que quieran. También proporciona persistencia para los mensajes enviados a través de la cola.
Toma final:
Utilice Redis:
Utilice kafka:
redis
para asegurarse de que los mensajes que se han enviado pero que aún no se han procesado no se perderán después de reiniciar redis
. Aunque es posible hacer eso, redis
no deje que se espera (o mantener a las palabras de reutilización de @Karthikeyan) fuera de la caja.
La versión Redis 5.0+ proporciona la estructura de datos Stream . Podría considerarse como una estructura de datos de registro con garantías de entrega. Ofrece un conjunto de operaciones de bloqueo que permiten a los consumidores esperar a que los productores agreguen nuevos datos a un flujo y, además, un concepto denominado Grupos de consumidores.
Básicamente, la estructura Stream proporciona las mismas capacidades que Kafka.
Aquí está la documentación https://redis.io/topics/streams-intro
Hay dos clientes Java más populares que admiten esta función: Redisson y Jedis.