0

MXBean をあるエンドポイントから別のエンドポイントにメッセージとして送信したいと考えています。すでに Apache Camel に含まれている JMX メッセージ形式はこれをサポートしていますか?

私のプロジェクトでは、ローカル マシンで JVM の MXBean を取得する必要があります。CompilationMXBean、MemoryMXBean などを使用します... [java.lang.management.* にある] JVM 情報を取得します。

また、XML ファイルを使用してルートを作成しています。次に、Java でコンポーネント/エンドポイントを作成します (dispatch/acquire 関数を使用)。

または、カスタム メッセージ解析を作成する方法はありますか? Apacheキャメルはかなり新しいです。

前もって感謝します。

4

2 に答える 2

2

CamelのJMXコンポーネントは、実際にはJMX通知を渡すことを目的としています。MXBean自体をメッセージとして渡すことはできませんが、あなたが何をしようとしているのかを理解していれば、データサンプリングをCamelメッセージとして渡す方法がいくつかあります。

  1. カプセル化された参照をエンドポイントに渡します。エンドポイントは、参照を、参照されたMBeanServer / MXBeanへの1つ以上のJMX呼び出しに解釈して、指定された値を取得します。参照は、JMXServiceURL、ObjectName、および属性名または操作名/パラメーターのペアのリストとして一般的にエンコードできます。

  2. または、ターゲットJVMにインストールされた新しいMXBeanを作成して、必要なすべてのローカルMXBeanデータを定期的にサンプリングし、それを集約してJMX通知として発行することもできます。送信された通知は、標準のCamelJMXコンポーネントで処理できます。

于 2013-01-01T15:39:33.830 に答える
2

jolokia ( http://www.jolokia.org/ )も参照してください。これは、ローカルおよびリモートの JVM で JMX との統合を容易にし、REST およびJSON ベース。

一括操作に対応しているので、雑談などはありません。

Hawt.ioプロジェクト ( http://hawt.io/ )で Jolokia を使用して、Camel、ActiveMQ、ServiceMix などを実行するリモート JVM から Web ベースのコンソールからデータを収集しています。

于 2013-01-02T14:07:55.587 に答える