2016-04-18 2 views
1

MQ Lightを使用してBluemixでポイントツーポイントメッセージングを実現したい。MQ Lightを使用してBluemixでポイントツーポイントメッセージングを行うにはどうすればよいですか?

これを行うことはできますか?トピックを定義するのではなく、MQ Lightサービスにメッセージの送信先を認識させるようにします。

私はpub-subモデルを使いたくないのですが、その代わりにメッセージを目的のコンシューマnode.jsアプリケーションに直接配信したいと考えています。

どうすればこの問題を解決できますか?

答えて

2

メッセージを送信するためにアプリケーションで使用されるアドレスには、topic/pubsub形式の形式がありますが、MQ Light APIはこれらのメッセージのキューおよびpub/subモデルでの配信をサポートしています。コンセプトのための更なる詳細は、ここで見つけることができる:

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

要約すると、メッセージ配信(キューに入れられた又はパブ/サブ)のスタイルは、それがメッセージを受信したい宛先を定義する受信アプリケーションによって選択されますから。 「共有宛先」が指定されている場合、宛先の各メッセージは、その宛先から受信しているアプリケーション(たとえば、同じ共有宛先を使用している)のうちの1つにのみ配信されるキュースタイルのセマンティクスを取得します。共有先を使用しない場合は、すべてのメッセージの独自のコピーを受信します。 pub/sub。どちらの場合も送信アプリケーションは同じです。

例として、アプリケーションがアドレス '/ address/Q1'にメッセージを送信する場合

アプリケーションA、B、およびCはすべて、 '/ address/Q1'アドレスにマップされた共有宛先 'dest1'を使用するように定義されている場合、そのアドレスに送信されたメッセージはそれらの間で共有されます(キュースタイルの配信モデル)ので、1つのアプリケーションだけが各メッセージを受信します。

アプリケーションA、B、Cがすべてアドレス '/ address/Q1'にマップされた非共有宛先を使用すると定義されている場合、そのアドレスに送信されたメッセージはすべてのアプリケーション(pub /サブスタイル配信モデル)。

どちらの場合でも、アプリケーションは、アプリケーションが接続されていないときにメッセージが保持される時間を制御するために、宛先のtimeToLiveを設定できます。これは、一般に、pub/subとキュー配信モデルでは異なる設定になりますが、アプリケーションによって簡単に制御されます。

+0

メッセージが単一の/同一のアプリケーションの複数のインスタンスによって送受信されるという目的がある場合、キュー(共有)モデルを使用することは意味があり、複数のインスタンスは同じメッセージを受信せず処理する別のメッセージとして。 これは、処理中にアプリがクラッシュした場合にメッセージが処理されることをMQがどのように保証しているかに関する後続の質問につながります。私はフォローアップの質問を投稿した:http://stackoverflow.com/questions/36768399/how-does-mq-light-assure-that-message-is-not-removed-from-queue-if-app-crashes-d – ValerieLampkin

関連する問題