2016-07-03 25 views
0

Ich habe ein Szenario mit diesen besonderen Anforderungen:MQ Wahl für Punkt-zu-Punkt-Hochdurchsatz-

  • Produktion bereit & stabil.
  • Punkt-zu-Punkt-Verbindung, mit dem Hersteller hinter einer Firewall und einem Verbraucher in der Cloud. Es könnte möglich sein, den Datenverkehr zwischen einigen Produzenten/Konsumenten aufzuteilen, aber der gesamte Verkehr muss immer noch eine einzelne WAN-Verbindung durchqueren, was wahrscheinlich der Engpass sein wird.
  • Hoher Durchsatz - etwas in der Größenordnung von 300 Mb/s (kann bis zu 1 Gb sein!). Die Nachrichtengrößen variieren von ~ 1 KB bis zu möglicherweise mehreren MB.
  • Garantierte Lieferung ein Muss - jede Nachricht muss letztendlich beim Verbraucher eintreffen, deshalb müssen wir im Falle eines vorübergehenden Netzwerkausfalls Nachrichten auf die Festplatte speichern oder riskieren, dass der Speicher ausgeht.
  • Nachrichtenreihenfolge ist nicht wichtig, Nachrichten sind mit Zeitstempeln versehen und können beim Kunden neu angeordnet werden.
  • Hoch vorzuziehen, aber nicht so wichtig - auf beiden Linux & Windows laufen sollte (JVM scheint die offensichtliche Wahl)

Ich habe an so vielen MQs suchen in letzter Zeit, und ich habe keine Hände- auf Erfahrung mit irgendwelchen.
Dachte, es ist eine bessere Idee, jemanden mit Erfahrung zu fragen.
Wir überlegen vor allem Kafka, aber ich bin mir nicht sicher, es ist das beste für unseren Anwendungsfall, scheint auf verteilte Bereitstellung & mehrere Themen \ Verbraucher \ Produzenten zugeschnitten zu sein. Auch definitiv nicht produktionsfertig unter Windows. Was ist mit Apache ActiveMQ oder Apollo \ Artemis? RabbitMQ scheint nicht zu unseren Leistungsanforderungen zu passen. Oder vielleicht gibt es eine Java-Bibliothek, die die Funktionen hat, die wir ohne Vermittler-Broker brauchen?
Jede Hilfe, die Sinn dieses Kludges macht, würde sehr geschätzt werden.

+0

Weitere Informationen finden Sie unter http://stackoverflow.com/questions/731233/activemq-or-rabbitmq-or-zeromq- oder/5350026 # 5350026 - auch die Confluent Platform stellt einen Rest Proxy zur Verfügung, um Nachrichten in Kafka über HTTP – fhussonnois

+0

zu erstellen Danke, ich werde mir die Frage ansehen. Obwohl ich nicht sehe, wie mir ein REST-Proxy helfen wird, beabsichtige ich, Kafkas Java-API direkt für das Hochleistungs-TCP-Protokoll und weniger Zwischenhändler zu verwenden. – Tolstoyevsky

Antwort

0

Wenn uns jemand begegnet, sind wir am Ende mit Kafka gegangen. Seine Leistung ist beeindruckend und bis jetzt ist es auf Linux sehr stabil. Es wurde noch kein Versuch unternommen, es in Produktionsbereitstellungen unter Windows auszuführen.

UPDATE 12/3/2017: Funktioniert gut und sehr stabil auf Linux, aber unter Windows ist dies nicht in der Produktion verwendbar. Alte Daten werden nie wegen undichter Dateizugriffe gelöscht, der relevante Jira wird seit 2013 ignoriert: https://issues.apache.org/jira/browse/KAFKA-1194