Redis kann genauso wie Kafka als Pub-Sub in Echtzeit verwendet werden.
Ich bin verwirrt, welches ich wann verwenden soll.
Jeder Anwendungsfall wäre eine große Hilfe.
Redis kann genauso wie Kafka als Pub-Sub in Echtzeit verwendet werden.
Ich bin verwirrt, welches ich wann verwenden soll.
Jeder Anwendungsfall wäre eine große Hilfe.
Antworten:
Redis Pub-Sub ist meistens wie ein Feuer-und-Vergessen-System, bei dem alle von Ihnen produzierten Nachrichten gleichzeitig an alle Verbraucher übermittelt werden und die Daten nirgendwo gespeichert werden. Sie haben eine Speicherbeschränkung in Bezug auf Redis. Auch die Anzahl der Hersteller und Verbraucher kann die Leistung in Redis beeinflussen.
Kafka hingegen ist ein verteiltes Protokoll mit hohem Durchsatz, das als Warteschlange verwendet werden kann. Hier können beliebig viele Benutzer produzieren und Verbraucher jederzeit konsumieren. Es bietet auch Persistenz für die Nachrichten, die über die Warteschlange gesendet werden.
Letzte Einstellung:
Verwenden Sie Redis:
Verwenden Sie Kafka:
redis
um sicherzustellen, dass Nachrichten, die gesendet, aber noch nicht verarbeitet wurden , nach einem Neustart von nicht verloren gehen redis
. Obwohl es möglich ist , das zu tun, redis
darf nicht zu halten (oder halten zu Wiederverwendung Worten @Karthikeyan) aus dem Kasten heraus .
Die Version Redis 5.0+ bietet die Stream- Datenstruktur. Es könnte als Protokolldatenstruktur mit Liefergarantien betrachtet werden. Es bietet eine Reihe von Blockierungsvorgängen, mit denen Verbraucher auf neue Daten warten können, die von Produzenten zu einem Stream hinzugefügt wurden, und zusätzlich ein Konzept namens Verbrauchergruppen.
Grundsätzlich bietet die Stream-Struktur die gleichen Fähigkeiten wie Kafka.
Hier ist die Dokumentation https://redis.io/topics/streams-intro
Es gibt zwei beliebte Java-Clients, die diese Funktion unterstützen: Redisson und Jedis