RabbitMQ / ActiveMQ oder Redis für über 250.000 msg / s
Obwohl redis und message-queueing-software sind in der Regel für verschiedene Zwecke verwendet, würde ich mag zu Fragen, vor-und Nachteile der Verwendung von redis für die folgenden use-case:
- Gruppe von event-Sammler schreiben eingehende Nachrichten als Schlüssel/Wert . die Verbraucher Holen und löschen bearbeitet Tasten
- laden ab 100k msg/s und die über 250k in kurzer Zeit (wie die Monate) - Ziel ist das erreichen von Millionen msg/s
- Persistenz ist nicht unbedingt erforderlich. es ist ok zu verlieren, nicht in Journalen erfasste Nachrichten bei Ausfall
- Leistung ist sehr wichtig (also die Anzahl der Systeme, die erforderlich sind, um Last)
- Nachrichten, die nicht verarbeitet werden müssen, in der Reihenfolge, wie Sie ankommen
kennen Sie solche Fälle, wo redis gewählt, die über die traditionellen message-queueing-software ? oder würden Sie etwas anderes ?
Hinweis: ich habe auch gesehen, diese aber nicht helfen:
Real-time-Anwendung-Neuling - Node.JS + Redis oder RabbitMQ -> client/server-wie?
Dank
InformationsquelleAutor der Frage anonymous | 2011-09-21
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gegeben deine Anforderungen würde ich versuchen, Redis. Es wird eine bessere Leistung als andere Lösungen und geben Ihnen viel feinere Kontrolle über die Persistenz-Eigenschaften. Abhängig von der Sprache, die Sie verwenden können Sie verwenden eine sharded Redis-cluster (Sie müssen Redis-Bindungen, die Unterstützung von konsistenten hashing-nicht alle tun). So können Sie skalieren, um die Lautstärke angegeben. Ich habe gesehen, 10k/sec auf meinem laptop in einige grundlegende tests.
Werden Sie wahrscheinlich wollen, verwenden Sie die Liste der Operationen in Redis (LPUSH für schreibt, BRPOP für liest), wenn Sie möchten, queue-Semantik.
Habe ich einen ehemaligen Kunden, dass die eingesetzten Redis in der Produktion als message queue letzten Frühling und Sie waren sehr glücklich mit ihm.
InformationsquelleAutor der Antwort James Cooper