2012-04-04 8 views
1

私はPHPプロジェクトでRabbitMQの置き換えを探しています。これまで検討してきた2つの選択肢は、KestrelとQpidです(私がAMQPを使用することに決めた場合(私は避けたい))。 RabbitMQでは、メッセージをどのキューまたはトピック(JMS用語で)に配信するかを決定するExchange(宛先)にメッセージを送信できます。私がSTOMPサーバー(ActiveMQ/ApolloまたはHornetQ)を選択するのを止めるのは、STOMPで宛先へのメッセージの送信が可能かどうかを調べることができないため、メッセージが多数のキュー(JMS条項)?送信者は、メッセージを配信するキューを認識していないはずです。STOMPを使用して複数のキューにメッセージを送信することはできますか?

ありがとうございます。

答えて

1

Composite Destinationsという名前のものをActiveMQで使用すると、Stompまたは標準JMSクライアントでこれを行うことができます。 Stompの送信先には、/ queue/stringの接頭辞が付けられ、その後に送信先の名前が付けられます。また、ActiveMQでVirtual Destinationsを使用することもできます。もちろん、ActiveMQのDestination文字列はwildcardsをサポートできます。

+0

わかりましたら、ワイルドカードを使用してキューのグループを購読できますが、メッセージは送信できません。コンポジットの宛先では、メッセージを送信するときにすべての宛先を列挙する必要があります。これは、プロデューサをコンシューマから切り離すという考え方に反します。 – minaev

+0

複合宛先の全ページを読んだら、http://activemq.apache.org/virtual-destinations.html#VirtualDestinations-CompositeDestinationsのような、必要な操作を行うブローカー側の設定へのリンクがあります。 "読んで、その基本的な。 –

+0

[恥ずかしがっているが、永続的]これはサーバの設定ファイルでのみ有効にできるのだろうか(うまくいけば、再起動せずに)? STOMPセレクタは適切な(そしてより柔軟な)置換品ですか?ありがとう! – minaev

1

HornetQではDiverts(排他的で非排他的)を使用できます。 STOMPメッセージは元のキューに到着しますが、hornetq-configuration.xmlで設定された適切なキューに透過的に転送されます。

また、メッセージを適切なキューに分離するために、迂回するフィルタを適用することもできます。

+0

素晴らしいですが、私は同じ質問をするように誘惑されます。転向はサーバー側でのみ有効にすることができますか?また、STOMPセレクタはフィルタに直接変換されますか? – minaev

関連する問題