10

次の違いは何ですか:

  1. 標準 MBean
  2. 動的 MBean

それぞれの長所と短所は何ですか? また、リソースを管理するためにこれら 2 つのコンポーネントのいずれかをいつ選択する必要がありますか?

4

1 に答える 1

10

標準 MBean には、MBean の存続期間中に変更されない固定メタデータがあります。ダイナミック MBean は、メタデータをオンザフライで定義し、メタデータを変更して再公開できます。Java に対するこの [ひどく不自然な] アナロジーについて考えてみてください。ディレクトリ内のファイル数をリストするクラスを作成したとします。標準クラス メソッドは次のようになります。

public int getFileCount(String directoryName)

一方、このクラスの動的 MBean バージョンはメソッドなしで開始しますが、起動時に利用可能なディレクトリをスキャンし、見つかったディレクトリごとに新しいメソッドを作成します。

public int getFileCountDir1();
public int getFileCountDir2();
....
public int getFileCountDirN();

これはあまり有用な設定ではありませんが、JVM のすべてのシステム プロパティを表示する MBean を作成したいとします。ええと....システム プロパティが変更されます...そして、どのプロパティ キーが事前に定義されるかを知る合理的な方法はないため、動的 MBean が何に適しているかをより適切に表現できます。

長所と短所は次のとおりです。

  1. 標準 MBean は簡単に作成でき、既存のクラス インスタンスをラップして標準 MBean として公開できます。
  2. 動的 MBean は、有用な目的を果たす場合には優れていますが、実装にはかなりの労力がかかります。
于 2013-04-25T14:33:56.660 に答える