Webアプリケーションのクラスタに属するすべてのノードを見つける方法はありますか?私はJBossで知っているHAServiceMBeanSupportを使ってすべてのノード(ホスト名、IPアドレス)に関する情報を取得できますが、Tomcat、WebSpere、Glassfish、Oracle AS、Jetty、WebLogicで同様の方法をどのように実現できますか? (ベストは、それらのすべてに対応するインターフェイスになります)J2EEアプリケーションクラスタ内のすべてのノードをプログラムで検索/一覧表示する方法
5
A
答えて
0
私の知る限り、これはアプリケーションサーバーの機能によって異なります。
これを行うための標準的な方法はありません。
あなたは次のことを試すことができます。
クラスServletContextListenerは二つの方法があります。 createメソッド内でホスト名とIPアドレスを計算し、destroyメソッドでノードを削除することができます。
この方法では、VMクラッシュ時に問題が発生します。たとえば、destroy-methodは呼び出されません。
EDIT: ソフトウェアにはデータベースが必要ですか?その場合は、すべてのクラスタノードで同じデータベースインスタンスを使用する必要があります。あなたのアプリがクラスタなしでデプロイされている場合は、「プライベート」データベースを使用します。あなたは、共有DBが必要になります。
表:ノード
HOST | IP
as1.cluster | < ip>
as2.cluster | < ip2>
そのDBに1行しか挿入されていない場合、クラスタはありません。
ノードがクラッシュし、このテーブルからエントリを削除しない場合、このテーブルは壊れている可能性があります。
関連する問題
- 1. すべての検索一致をオブジェクト一覧に表示する方法
- 2. Nugetですべてのパッケージを一覧表示する方法
- 3. すべてのノードではなく、単一のノードを検索する方法
- 4. Google +のすべての+1を一覧表示する方法
- 5. すべてのVOBのフォルダパスを一覧表示する方法
- 6. 実行中のEclipseインスタンス内のすべての機能をプログラムで一覧表示する方法
- 7. ADのLDAP - グループ内のすべてのユーザーを一覧表示する方法
- 8. WPFリソースファイルの検索/一覧表示
- 9. SVN内のすべてのブランチを一覧表示する方法
- 10. ディレクトリ内のすべてのファイルを一覧表示する方法Silverlight
- 11. すべてのcassandraテーブルを一覧表示する方法
- 12. すべてのKafka zookeeperブートストラップサーバーを一覧表示する方法
- 13. FAT:ディレクトリ内のすべてのファイルを一覧表示する
- 14. TCL内のすべてのソースファイルを一覧表示するコマンド
- 15. リポジトリ内のすべての問題を一覧表示する
- 16. ステート内のすべてのステートを一覧表示する
- 17. ディレクトリ内のすべてのファイルを一覧表示するPython
- 18. セット内のすべてのアイデンティティを一覧表示するJSON
- 19. ディレクトリ内のすべてのフォルダを一覧表示する(PHP)
- 20. フォトライブラリ内のすべてのgifファイルを一覧表示する
- 21. スキーム:スコープ内のすべてのバインディングを一覧表示する
- 22. ワニスキャッシュ内のすべてのURLを一覧表示する
- 23. トピックブランチ内のすべてのコミットを一覧表示する
- 24. C#:アセンブリ内のすべてのクラスを一覧表示する
- 25. BigQueryプロジェクト内のすべてのデータセットを一覧表示する
- 26. 検索のファイル一覧表
- 27. Visual C#のツリービューコントロール内の親ノードのすべての子ノードを一覧表示する
- 28. ブック内のすべてのVLookupを一覧表示します
- 29. Pythonで.appファイルの内容を一覧表示する方法
- 30. リソースディレクトリJerseyサーブレット内のすべてのファイルを一覧表示
hmmしかし、アプリケーションがどのようにクラスタ内にあることを検出できますか?クラスタ内で動作しない2台のマシンにアプリケーションをデプロイしたと仮定します。とにかく私はこのためのアプリケーションサーバーの特定の解決策を見つけることに問題があります... –
彼らがクラスタで実行する場合、(データベースが使用される場合)同じデータベースを共有する必要があります。それらが異なるクラスタまたは単一のApplication Serverとして動作する場合は、異なるデータベースを使用する必要があります。 EJB 3.1(?)を使用できる場合は、Clusterwide Singleton Beanがあります。 –
問題は、アプリケーションをクラスタにデプロイすることができますが、それをする必要はありません。現在のところ、アプリケーションアーカイブの構築時に、アプリケーションが実行されているときにクラスタ化されているかどうかを検出しようとする理由がわかりません。それが不可能な場合は、クラスタ化されたアプリケーションのために別のconfig/setupを作成する必要があります(実際には、顧客の設定がより必要になります)。 –