2016-09-09 2 views
0

Ich implementiere ein kleines Spring Cloud Stream-Projekt, , das nur http-Quellen und jdbc-Senken verwendet (je 3 Instanzen). Die geschätzte Last beträgt 10 Treffer/Sekunde.Ist Redis eine gute Idee für Spring Cloud Stream? Sollte ich Kafka oder RabbitMQ verwenden?

Ich dachte über die Verwendung von redis, weil ich mich wohler damit fühle, aber in der neuesten Dokumentation sind fast alle Referenzen zu kafka und RabbitMQ, also frage ich mich, ob redis in der Zukunft nicht unterstützt wird oder wenn ist irgendein Problem mit redis.

Grüße

Antwort

1

Redis ist nicht für die Produktion mit Frühlings-Cloud-Stream-empfohlen - das Bindemittel nicht voll funktionsfähig ist und Nachrichtenverlust ist möglich.

+0

Um fair zu sein - Nachrichtenverlust ist auch mit RabbitMQ in seinen Standardeinstellungen möglich. Ich lerne das kürzlich in einer Produktionsumgebung auf die harte Tour. Bei RabbitMQ müssen Sie die Warteschlange auf transactional = true setzen, was die Leistung um den Faktor 250 reduziert. Es gibt auch einen anderen Mechanismus namens Producer bestätigt, aber das letzte Mal, als ich ihn überprüft habe, wird er nicht von Spring Cloud Stream unterstützt. Scheint so, als ob der Weg zu diesem Punkt nur Kafka ist. – odedia

+0

@odedia Die Verwendung von Publisher-Bestätigungen für einen einzelnen Versand unterscheidet sich nicht wesentlich von der Verwendung von Transaktionen. Es kommt wirklich nur dann zur Geltung (Leistung), wenn Sie eine Reihe von Nachrichten senden, als auf alle Bestätigungen zu warten. So ziemlich die einzige Stream-App, die davon profitieren würde, wäre der Splitter, der mehrere Ausgaben von einem Eingang erzeugt. –

Verwandte Themen