問題タブ [mom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2033 参照

java - 複数のキューにわたる ActiveMQ メッセージ グループ コンシューマの選択?

ActiveMQ メッセージ グループは、複数のコンシューマー間で負荷を分散するための優れた機能ですつまり、メッセージのストリームは、メッセージに埋め込まれたグループ識別子 ( ) に従って、単一のキューの複数のコンシューマーに分割されますJMSXGroupID。(したがって、コンシューマ 1 は ですべてのメッセージを取得しJMSXGroupID = a、コンシューマ 2 は ですべてのメッセージを取得するJMSXGroupID = b、というようになります。)

ここで、 と の 2 つのキューがあるAとします。また、両方のキューを流れるメッセージBで s の一貫した分類法が使用されているとします。JMSXGroupIDブローカがキューで選択するコンシューマは、ブローカがJMSXGroupID = ABCキューAで選択するのと同じ接続からのコンシューマになりJMSXGroupID = ABCますBか?

私が尋ねた質問への答えは「いいえ」だと思います。変数が多すぎます: ブローカーが選択した消費A者に対応する消費者がいない場合はどうなりBますか? ブローカーが選択したコンシューマーに対応するコンシューマーA複数Bある場合はどうなりますか? これらの場合、明確な正解はありません。

しかし、この動作をシミュレートできますか? たとえば、複合宛先のコンシューマーは実行可能なソリューションになる可能性があります-すべてのコンシューマーが複合宛先で消費Aすることを確認してください。そうすれば、ビジネスを行うことができます-しかし、ActiveMQは複合宛先からの消費をサポートしていないようです.BA,B

私が見つけた唯一の解決策は、両方のメッセージをA単一Bのキューにプッシュし、それを呼び出してAB、その上に排他的なコンシューマーを配置することです。A「メッセージ」と「メッセージ」を区別するB必要がありますが、ヘッダーを使用すると簡単に区別できます。

ただし、このソリューションは変なにおいがします。(プロデューサーがメッセージに特別なヘッダーを忠実に適用するか、ペイロードを変更すると仮定する必要があります。) コンシューマーが 2 つの別々のキューAにまたがり、B常に同じ接続に到達することを確認するソリューションはありますか?

0 投票する
1 に答える
1080 参照

java - JMS、特に ActiveMQ を使用する場合の JMSExceptions の処理?

次のスニペットでは:

キャッチボールはどのような状況でJMSException投げられますか?それが起こったとき、それを処理する適切な方法は何JMSExceptionですか? 関連する JMS と ActiveMQ のドキュメントを読んだことがありますが、この点については何のガイダンスも提供していないようです (明らかにtry/を使用する以外は)。catch

たとえば、何らかの形で「悪くなった」JMSException場合に発生するので、破棄して最初からやり直すのは正しいことですか? それとも、問題が発生したことを意味するので、その接続に基づいているアプリケーション内のすべてを破棄して再構築する必要がありますか? または、呼び出しが一時的に失敗し、同じセッションで呼び出しを再試行すると成功する可能性がありますか?sessionconsumersessionconnectioncreateConsumer()

同様に、これらの行はいつ をスローしJMSException、閉じたSessionorのようなものを無視しますConnection:

一般的に JMS で s を処理する方法を理解したいのですJMSExceptionが、ActiveMQ に固有の回答も問題ありません。(実際、JMS は仕様にすぎないため、特定の実装に固有の回答が必要になる可能性があります。)

0 投票する
1 に答える
1029 参照

java - 非同期 JMS MessageConsumer に例外があることを検出しますか?

を含む JMSMessageConsumerを使用してメッセージを処理していますMessageListener。がメッセージの受信と処理を停止する原因となる何かが発生した場合MessageConsumer(たとえば、基になる接続が閉じられた場合)、どうすればそれを検出できますか? 仕様で見つけることができる通知メカニズムはないようです。

質問はそのままで明確だと思いますが、質問を明確にするためにコードを投稿してほしい場合は、質問してください!

重要な場合のために、私は ActiveMQ 5.8 を使用していますが、明らかに実装固有ではないスキームが必要です。

0 投票する
0 に答える
72 参照

rest - 異種クラスタ システムでの MOM の使用

異種分散クラスター システムがある場合、例として、クラスター サーバー システムについて想定してみましょう。そこで MOM (メッセージ指向ミドルウェア) を使用できますか? もし可能であれば、その実装方法の例を教えてください。

0 投票する
1 に答える
8446 参照

azure - RabbitMQ対。Microsoft Azure クラウド プラットフォームの MSMQ

Microsoft Azure クラウド プラットフォームでメッセージ指向ミドルウェア (MOM) を使用したいと考えています。RabbitMQ と MSMQ を少し比較してみました。私の場合は、最初の方が適しているようです。RabbitMQ とは異なり、MSMQ では操作が簡単で、監視と管理の必要性を実装する必要があります。

しかし、MSMQ は Microsoft 製品なので、RabbitMQ よりも Microsoft Azure クラウド プラットフォームとの互換性が高いと思います。

リンクやアドバイスは役に立ちます。ありがとうございました。

0 投票する
3 に答える
2958 参照

activemq - ActiveMQ フェイルオーバーが機能していないようです

非常に単純なシナリオがあります。永続的なサブスクリプションを持つ 1 つのブローカーと 1 つのコンシューマーです。これは私の消費者アプリのコードです:

これが私のactivemq.xmlです

ブローカーとコンシューマーの両方を実行してからブローカーを停止すると、コンシューマーはすぐに終了します。私が理解している限り、再接続を試みる必要がありますが、そうではありません。私は何を間違っていますか、アドバイスしてください。

!ノート!私は Eclipse でコンシューマを起動します。このタスク用にスタンドアロンの jar を構築しません。

ブローカーを最新の 5.9.1 に更新し、コンシューマーにも同じことを行いました。結果は同じです。ブローカーを停止した後、消費者は数秒後に死亡します。ブローカーが稼働していれば問題なく動作します。

0 投票する
2 に答える
629 参照

performance - MOM に JMS を使用する理由

私はこのトピックにとても興味があります。内部システム用の通信メカニズムを作成し、一部の外部クライアントへの接続も必要になる場合があります。内部モジュールも分散システムです。そのモジュール間に ESB を作成する必要があります。システムは、数百万の加入者に対して高いパフォーマンスを提供する必要があります。

パブリッシュ サブスクライブまたは p2p 通信の両方が必要です。

その実装を考え始めた当初は、REST api を前面に作成し、REST api は JMS バスと通信する予定でした。JMS バスには、内部システム間の通信を提供する機能があります。

残念ながら、私の調査によると、JMS を使用すると、パフォーマンス、スケーラビリティなどの非常に重大な問題が発生する可能性があり、JMS は不要であるように見えます。内部モジュールを介していくつかのアダプターを作成でき、両方とも REST サービスと通信できます。

内部通信に JMS を使用する必要がある理由を知っている人はいますか?