2016-04-18 3 views
1

Ich möchte Point-to-Point-Messaging in Bluemix mit MQ Light erreichen.Wie kann ich Point-to-Point-Messaging in Bluemix mit MQ Light durchführen?

Kann ich das tun? Ich möchte keine Themen definieren, sondern den MQ Light-Dienst über das Ziel informieren, an das die Nachricht gesendet werden soll.

Ich möchte nicht das Pub-Sub-Modell verwenden, stattdessen möchte ich die Nachrichten direkt zu der bestimmten Consumer-Anwendung node.js geliefert bekommen.

Wie kann ich das erreichen?

Antwort

2

Obwohl die Adressen, die von Anwendungen zum Senden von Nachrichten verwendet werden, das Format "theme/pubsub" aufweisen, unterstützt die MQ Light-API die Zustellung dieser Nachrichten in den Warteschlangen- und Pub/Sub-Modellen. Weitere Informationen zu den Begriffen finden sich hier:

https://developer.ibm.com/messaging/mq-light/docs/concepts/

Zusammenfassend ist die Art der Nachrichtenübermittlung (Warteschlange oder pub/sub) durch die empfangende Anwendung ausgewählt wird, wenn es das Ziel definiert sie Nachrichten empfangen möchte von. Wenn es ein "geteiltes Ziel" spezifiziert, wird es eine Warteschlangenstil-Semantik erhalten, bei der jede Nachricht am Zielort nur an eine der Anwendungen geliefert wird, die von diesem Ziel empfangen (z. B. wer dasselbe geteilte Ziel verwendet). Wenn es kein geteiltes Ziel verwendet, erhält es seine eigene Kopie jeder Nachricht, z. Kneipe/Unter. Die sendende Anwendung ist in beiden Fällen gleich.

Als ein Beispiel. Wenn eine Anwendung Nachrichten an die Adresse '/ adresse/Q1' sendet

Wenn alle Anwendungen A, B und C ein gemeinsam genutztes Ziel 'dest1' verwenden, das der Adresse '/ adresse/Q1' zugeordnet ist, dann jede Nachricht An diese Adresse gesendet wird zwischen ihnen geteilt (ein Queue-Style-Delivery-Modell), so dass nur eine der Apps jede Nachricht erhält.

Wenn die Anwendungen A, B und C alle ein nicht gemeinsam genutztes Ziel definieren, das der Adresse '/ adresse/Q1' zugeordnet ist, wird jede an diese Adresse gesendete Nachricht von allen Anwendungen empfangen (ein Pub/Substil-Liefermodell).

In beiden Fällen kann die Anwendung timeToLive für das Ziel festlegen, um zu steuern, wie lange Nachrichten aufbewahrt werden, wenn die Anwendung nicht verbunden ist. Dies wiederum wird normalerweise zwischen Pub/Sub- und Queue-Delivery-Modellen unterschiedlich festgelegt, kann aber leicht von der Anwendung gesteuert werden.

+0

Wenn das Ziel darin besteht, dass eine Nachricht von mehreren Instanzen einer einzelnen/derselben Anwendung empfangen/gesendet wird, ist die Verwendung des Warteschlangenmodells sinnvoll, sodass mehrere Instanzen nicht dieselbe Nachricht empfangen und verarbeiten als separate Nachricht. Das führt mich dann zu der folgenden Frage darüber, wie MQ sicherstellt, dass die Nachrichten behandelt werden, wenn App während der Verarbeitung abstürzt. Ich habe eine Nachfolgefrage gestellt: http://stackoverflow.com/questions/36768399/how-does-mq-light-assure-that-message-is-not-removed-from-queue-if-app-crashes-d – ValerieLampkin

Verwandte Themen