3

まず、rmi 仕様に関する Java の公式ドキュメントを読んでいます。 http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/index.html http://docs.oracle.com/javase/7/docs/platform/rmi/spec/rmi-activation2 .html

Oracle Webサイトにリストされているjava rmiの機能は、rmiアクティベーション部分を除いて簡単に理解できます。rmi アクティベーション メカニズムの詳細なドキュメントを読みましたが、実際のシナリオでの有用な実践についてはまだ何もわかりません。

したがって、これらは次のように私を本当に混乱させたいくつかの質問です。

  1. doc に関して、rmid はリモート rmi サーバーを指定し、サーバー情報を一度だけクライアントに返すルーターです。これは、サーバーがサービスを登録する場所である rmiregistry と同様の機能のように見えます。持っていない場合の違いは何ですか?
  2. このメカニズムには、サーバーの自動回復またはフェイルオーバー機能が含まれていますか? つまり、リモート rmi サーバーを RMID に登録する必要があることは既に知っています。リモート rmi サーバーの 1 つ (おそらく別のマシン上) がクラッシュした場合、RMID はこれを検出して、このリモート rmi サーバーのバウンスをトリガーできますか?
  3. JDK RMID ツールを使用する代わりに、カスタマイズしたスタンドアロン サーバーで同じ関数を実行するために、rmi API を使用して rmid の関数を実装できますか。たとえば、ツールrmiregistryは rmi API に置き換えることができますLocateRegistry.createRegistry(regPort);

関連資料をアドバイスまたは提供してください。事前に感謝します。

4

1 に答える 1

-1

doc に関しては、rmid はリモートの rmi サーバーを指定し、サーバー情報を一度だけクライアントに返すルーターです。

いいえ。ドキュメントにはそうは書かれていません。「rmid」は、リモート オブジェクトがまだ実行されていない場合に起動するデーモンです。

これは rmiregistry と同様の機能のように見えます

いいえ。

このメカニズムには、サーバーの自動回復またはフェイルオーバー機能が含まれていますか?

アクティブ化されたリモート オブジェクトを含む JVM が終了した場合、またはアクティブ化されたリモート オブジェクトが非アクティブ化された場合、rmid は必要に応じてそれを再起動します。

rmid をスタンドアロン サーバーで実行し、rmi ツールの代わりに Java API を介して初期化することはできますか?

質問がわかりません。

于 2013-04-21T22:06:30.423 に答える