2010-06-30 7 views
14

Wir arbeiten an einer Anwendung, die AMQP für Warteschlangen unterstützt. Einige unserer Kunden verwenden Websphere MQ. Ich frage mich nur auf hohem Niveau, wie austauschbar diese beiden Protokolle hinsichtlich der Funktionalität sind. Ich benutze celery, was mir erlauben sollte, die untergeordneten Dinge zu abstrahieren, solange ich ein Websphere MQ-Backend schreiben kann. Was ich herausfinden möchte ist, wie schwierig eine Herausforderung wird.AMQP vs Websphere MQ

Bietet Websphere MQ eine Obermenge der AMQP-Funktionalität? Hat jemand irgendwelche "Eigenschaften", die mein Leben schwierig machen könnten?

Antwort

10

UPDATE 23. Juni 2015
IBM hat MQ Light angekündigt, welche die Umsetzung von AMQP ist. Ihre Statement of Direction sagt, dass sie Funktionen bereitstellen wollen, die es Programmen ermöglichen, auf MQ Light ausgeführt zu werden, um irgendwann in der Zukunft in MQ zu laufen, müssen aber noch ankündigen, wann das sein wird. MQ Light ist ab diesem Zeitpunkt in der offenen Betaversion.


Erste Nutzlasten bewegt zwischen diesen Systemen wird mit einer einfachen Brücken App relativ einfach sein, das ein System liest aus und schreibt auf der anderen Seite. Sie haben beide Warteschlangen und Themen und explizites Routing ist möglich.

Die interessanten Teile sind so viel Spaß Konzepte wie ...

  • Mapping Antwort an-Destinationen. Besonders dynamische Antwortziele.
  • Transaktionalität
  • Jede Art von Routing komplizierter als „off dieser Warteschlange/Thema aufgreifen, wie diese setzen. Zum Beispiel ein Gateway, das Routen zu mehreren Zielen auf Warteschlangennamen basiert.
  • Sicherheit auf Nachrichtenebene.
  • Mapping Identitäten für Verbindungsebene Sicherheit
  • Keine Möglichkeit der End-to-End-Verschlüsselung von Nachrichten

Also, wenn alles, was Sie brauchen in der Größenordnung von „erhalten von AMQP ist:.. queuea, gestellt WMQ: QUEUEB "und transactiona Es ist nicht wichtig, dass Sie es leicht haben sollten. Darüber hinaus hängt es genau davon ab, was Sie tun möchten.

+0

Wahrscheinlich sollten Sie eine Frage stellen, aber was ist der native Transport von IBM Web MQ? Ich dachte, es wäre MQTT, aber anscheinend war das eine neue Sache, die sie hinzufügten. –

+3

Es ist ein proprietäres Drahtprotokoll. In der Regel mag ich offene Standards, aber ein Vorteil von WMQ ist, dass IBM das Kabelprotokoll nach Bedarf ändern kann. Wenn sie also mehrere Verbindungen über einen einzelnen Socket teilen und Read-Ahead-Streaming als Leistungsverbesserungen hinzufügen wollten, waren sie dazu in der Lage, obwohl dies bedeutete, dass die Drahtformate geändert werden mussten. Riesige Leistungseffekte mit diesen. Hätten sie das Protokoll veröffentlicht, wäre das viel schwieriger gewesen. Mit mehr Async im offenen Netz kann es jedoch notwendig werden, ein offenes Protokoll zu unterstützen oder MQs zu veröffentlichen. –

1

IBM MQ now supports AMQP 1.0 clients (einschließlich der vorhandenen IBM MQ Light-Clients) über die Einführung des AMQP-Kanals in MQ 8.0.0.4.

+0

Kann ich die AMQP-Kanalfunktion in 8.0.0.4 verwenden, um IBM MQ mit anderen AMQP-Produkten wie RabbitMQ zu integrieren? – sijo0703

+1

vermute ich wohl nicht. RabbitMQ unterstützt das AMQP 0.9-Protokoll, während IBM MQ AMQP 1.0 unterstützt. Die beiden Protokollversionen sind unterschiedlich genug, um nicht austauschbar zu sein. Selbst wenn beide die gleiche Protokollebene verwenden, kann kein Produkt als Client mit dem Server eines anderen Anbieters verbunden werden - das ist mir bekannt. Ich denke, möglicherweise möglich, eine eigene Client-Anwendung zu schreiben, die AMQP 0.9 verwendet, um mit einem RabbitMQ-Server und AMQP 1.0 interagieren mit einem IBM MQ-Warteschlangenmanager zu interagieren, die Anwendung als eine Brücke zwischen den beiden zu fungieren. – LaurenceBonney