問題タブ [activemq]

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 に答える
2833 参照

messaging - ActiveMQ distribution of messages

I have several servers that produce xml files from Python and some other servers that consume those xmls using Java. I've only recently looked into JMS and ActiveMQ and decided to try using it to pass the xml files.

So I set up ActiveMQ daemons on the consumer servers and figured I'd implement some cycling method on the produces to distribute the xmls evenly across the consumers.

For testing, I ran one producer and one consumer and looked at the results.

To my surprise, the messages from the producer were distributed across all the ActiveMQ servers on the network. Since I only ran one consumer it only received the xmls that got to the ActiveMQ daemon on that machine, and the rest of the xmls were waiting patiently on the other ActiveMQ daemons on other machines.

EDIT: This is not what actually happened, sorry. See below for details

Now, I'm not complaining, since this is what I wanted anyway, but I'm a little confused: what is the proper way to implement this many-to-many queue that I'm after?

Should I set up ActiveMQ daemons on my producer machines as well, send the xmls to the localhost ActiveMQs and trust the automatic discovery to get the xmls to consumers?

Should I stick to my original plan, and cycle the messages across the consumer machines, just to be safe?

Or is there an API I should use that hide those details from my processes?

BTW, the producers are python processes using STOMP and the consumers are java using JMS.

I apologize if your eyes are hurting from my crappy ASCII art, I wasn't sure if I'm being clear enough with just words.

EDIT

Apparently, when I was running "one producer and one consumer" I didn't notice that the other consumers were already running. They were just not doing anything useful with the xmls they processed. That's why I was seeing partial results.

After reading a bit more and experimenting a little, I figured out the following:

By default, ActiveMQ will auto-discover other ActiveMQ instances on the local network, and create a store-and-forward network of brokers. This means that the producer can post the xmls to any ActiveMQ instance and they will find their way to consumers listening on other ActiveMQ instances on the same network.

Note that the documentation claims that auto-discovery is not recommended for production setups.

The accepted answer below still holds true, though. The simplest way to use ActiveMQ is just use one or two servers as "Queue Servers". Nevertheless, I chose to go with my original plan, because I think it will reduce network traffic (with a middle server, xmls have to go into it and the out of it again).

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

jms - ActiveMQメッセージグループ化のパフォーマンス

ActiveMQのメッセージグループ化機能を使用した人はいますか?

http://activemq.apache.org/message-groups.html

これは、私が取り組んでいるプロジェクトにとって非常に便利な機能ですが、この機能の拡張性とパフォーマンスに興味があります。私たちのシステムでは、メッセージを約3〜5個のメッセージのグループにグループ化する必要があるため、プロセスの実行中にグループを継続的に追加します。この場合、最終的にはすべてのグループを保存しようとしてメモリが不足するようです。

私はどんな経験/考え/賛否両論にも興味があります。

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

java - インプロセスのActiveMQプロデューサー/コンシューマーの例?

私はActiveMQをアプリケーションに埋め込まれたインプロセスメッセージキューとして使用することを調査していますが、そのようなアプリケーションを起動する方法に少し行き詰まっています。私はそれをそのように想像しています(もちろん、擬似コード):

私はこれの簡単なバージョンを組み立てようとしましたが、プロデューサーとコンシューマーが永遠に機能するように、または終了するように言われるまで、それらを作成する方法に固執しています。これを行うための最良の方法は何ですか?私は特に糸脱毛の側面について話している。独自のスレッドなどで何が必要/スポーンしたいのか...

私はメッセージキューベースのアプリケーションにまったく慣れていないので、例を詳しく説明してください。

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

message-queue - 単純なキュー/ミューテックスではなく、なぜ ActiveMQ なのか?

明日は、インプロセス メッセージ キューの実装を選択する理由を説明しますが、その理由を明確に説明することはできません。私の共同設計者は、ジョブの基本的なリストとミューテックスを使用してアクセスを制御する単純な非同期キューを実装することを提案しています。私は組み込みモードの ActiveMQ を提案しています。私は個人的に ActiveMQ に非常に感銘を受けました。私の直感的な印象を裏付けるために、いくつかの適切で確固たる議論をしたいと思います。

それが重要な場合、アプリケーションは基本的に 1 つのプロデューサー/n 人のコンシューマーであり、処理される個々のジョブに固有の優先度とタイプの情報があります。

これまでのところ、ソリューションの管理性と拡張性は強力な議論になっていないことに注意してください。誰かが私の主張にもっとパンチを与えてくれたら嬉しいです. フォーラムはそれについて私を助けることができますか?

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

activemq - アクティブな mq に存在するのは最新のメッセージのみですか?

Muleを介してActive MQキューにメッセージを送信しています。

最新のメッセージのみがキューに残り、以前のメッセージは残りません。

これはどのように達成できますか?

どうもありがとうございました。

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

http - ActiveMQ 5.2.0 + REST + HTTP POST = java.lang.OutOfMemoryError

まず、JMS と ActiveMQ に関しては初心者です。

HTTP POST 経由で XML メッセージをキューに挿入するメッセージ プロデューサーのミドルウェアとして機能するメッセージング ソリューションを検討しています。プロデューサーは、変更できない C++ で記述された既存のシステムです (そのため、Java と C++ API は廃止されました)。

「デモ」の例といくつかの試行錯誤を使用して、(Windows ボックスで) やりたいことの実際の例をまとめました。

"webapps" の下のテスト ディレクトリに構成した web.xml は、プロデューサーから受信した HTTP POST メッセージが MessageServlet によって処理されることを指定します。

「activemq.xml」にテキスト アプリの行を追加しました (「ow」はテスト アプリのディレクトリです)。

メッセージをキューに「挿入」するテスト スクリプトを作成しましたが、これはうまく機能します。

私が直面している問題は、REST/HTTP POST を介してメッセージを挿入し続けると、ActiveMQ によって使用されるメモリ消費とスレッド数が増加し続けることです (タイムリーなコンシューマーと、低速または存在しないコンシューマーがある場合に発生します) )。

メモリ消費量が約 250MB になり、スレッド数が 5000 を超えると (Windows タスク マネージャーに表示されるように)、ActiveMQ がクラッシュし、ログに次のように表示されます。

スレッド「ActiveMQ Transport Initiator: vm://localhost#3564」の例外 java.lang.OutOfMemoryError: 新しいネイティブ スレッドを作成できません

あたかも Jetty が各 HTTP POST を処理するために新しいスレッドを生成しているかのようであり、スレッドが停止することはありません。

私はこのページを見ました:

http://activemq.apache.org/javalangoutofmemory.html

試してみましたが、問題は解決しませんでした(ただし、変更の意味も完全には理解していませんでした)。

誰にもアイデアはありますか?

ありがとう!

  • ブルース・ロス

PS - 価値のある「テスト メッセージ プロデューサー」の Python スクリプトを以下に含めました。100 メッセージのバッチを作成し、タスク マネージャーで ActiveMQ のメモリ消費とスレッド数を監視しながら、コマンド ラインからスクリプトを手動で実行し続けました。

0 投票する
16 に答える
535180 参照

java - Java キーストアに既存の X.509 証明書と秘密鍵をインポートして SSL で使用するにはどうすればよいですか?

私はこれを ActiveMQ 構成に持っています:

X.509 証明書とキー ファイルのペアがあります。

これら 2 つを SSL および SSL+stomp コネクタで使用するには、どうすればインポートできますか? 私がグーグルで検索できるすべての例は、常にキー自体を生成しますが、私はすでにキーを持っています。

私が試してみました

ただし、これは証明書のみをインポートし、キー ファイルはインポートしないため、

証明書とキーを連結しようとしましたが、同じ結果が得られました。

キーをインポートするにはどうすればよいですか?

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

java - Spring JMS メッセージ リスナー コンテナ

私は JMS を初めて使用し、Tomcat 6 と Spring を使用して ActiveMQ をセットアップしています。ほとんどの基本的な構成は完了していますが、Spring が提供するメッセージ リスナー コンテナーとは少し混乱しています。ドキュメンテーションを読むと、メッセージ リスナー コンテナがサブスクライブ (私はトピックで作業しています)、サブスクライブ解除、およびメッセージのリスナーへの配信を「処理」するために使用されているようです。これについて正しく考えているかどうかはわかりません。この場合、メッセージ リスナ コンテナを使用して複数のクラスを同じトピックにサブスクライブさせる方法に関するドキュメントはありません。messageListener プロパティを設定できることがわかりましたが、それでは 1 つのクラスのみがトピックにサブスクライブできます。しません」

誰かが私のためにこれに光を当てることができますか? 少し戸惑うこともあるかと思います。

前もって感謝します!

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

msmq - メッセージング プラットフォーム

銀行環境で 2 つのコア システムを統合するメッセージング プラットフォームを検討しています。私たちはオープンソースのオプションを検討しています。どの製品を使用したことがあり、経験を共有できますか?