Redis può essere utilizzato come pub-sub in tempo reale proprio come Kafka.
Sono confuso su quale usare quando.
Qualsiasi caso d'uso sarebbe di grande aiuto.
Redis può essere utilizzato come pub-sub in tempo reale proprio come Kafka.
Sono confuso su quale usare quando.
Qualsiasi caso d'uso sarebbe di grande aiuto.
Risposte:
Redis pub-sub è per lo più come un sistema spara e dimentica in cui tutti i messaggi che hai prodotto verranno consegnati a tutti i consumatori in una volta e i dati non vengono conservati da nessuna parte. Hai una limitazione nella memoria rispetto a Redis. Inoltre, il numero di produttori e consumatori può influire sulle prestazioni in Redis.
Kafka, d'altra parte, è un registro distribuito ad alta velocità che può essere utilizzato come coda. Qui un numero qualsiasi di utenti può produrre ei consumatori possono consumare in qualsiasi momento lo desiderano. Fornisce inoltre la persistenza per i messaggi inviati tramite la coda.
Take finale:
Usa Redis:
Usa kafka:
redis
per garantire che i messaggi che sono stati inviati ma non ancora elaborati non andranno persi dopo un riavvio di redis
. Sebbene sia possibile farlo, redis
non consente di tenere (o continuare a riutilizzare le parole di @Karthikeyan) fuori dagli schemi.
La versione Redis 5.0+ fornisce la struttura dei dati Stream . Potrebbe essere considerato come una struttura di dati di registro con garanzie di consegna. Offre una serie di operazioni di blocco che consentono ai consumatori di attendere nuovi dati aggiunti a un flusso dai produttori e in aggiunta a ciò un concetto chiamato Consumer Groups.
Fondamentalmente la struttura Stream fornisce le stesse funzionalità di Kafka.
Ecco la documentazione https://redis.io/topics/streams-intro
Esistono due client Java più diffusi che supportano questa funzione: Redisson e Jedis