3

私はJMXの初心者です。Glassfish をサーバーとして使用して、Web サービスを開発しました。ここで、アプリを監視したいと思います。

私が最初に考えたのは、リモートでの監視ツールとして Jconsole と JVM を使用することでした。調査を続けた後、次の記事を見つけました。

http://www.javacodegeeks.com/2012/02/client-side-server-monitoring-with.html

HTTP 代替手段を介した JMX へのアクセス

これは、Jolokia のようなブリッジを使用する必要があることを示唆していますが、その理由は明らかにわかりません。JConsole + mbeans では不十分ですか?

私は研究を続け、例を使用して Java プロジェクトを作成しました。

  public static void main(String[] args) throws MalformedObjectNameException, J4pException {
        J4pClient j4pClient = new J4pClient("http://localhost:8080/jolokia/");
        J4pReadRequest req = new J4pReadRequest("java.lang:type=Memory",
                "HeapMemoryUsage");
        J4pReadResponse resp = j4pClient.execute(req);
        Map<String, String> vals = resp.getValue();
        System.out.println("Memory usage: used: " + vals);

    }

それは機能し、使用メモリに関連するメッセージを受け取りました。でも、何が目的だったのかわからない。

Web サービスを監視する最良の方法は何ですか?

4

1 に答える 1

4

JVisualVM の使用をお勧めします。それは本当に使いやすく、素晴らしい情報を提供します。アプリケーションを起動してから JVisualVM を起動するだけで、実行中の Java アプリが検出されます。それをクリックして、あらゆる種類の情報をグラフィック形式で取得できます。これを使用して、メモリ、スレッド、ガベージ コレクションを監視し、ヒープ ダンプを作成します。

あなたが言及したツール Jolokia は、影響の少ないアプリケーションを監視する方法を提供しますが、より多くのコーディングを行う必要があるようです. JVisualVM は、すぐに使用できる多くの情報を提供します。

JVisualVM のパフォーマンスへの影響を考慮する必要があるかもしれませんが、Web サイトのヒット率が高くない限り、最初は気にしません。影響を軽減するために何を監視するかを選択することもできます。

于 2014-12-27T12:54:52.530 に答える