0

Java EE 6、より具体的には Glassfish v3.1.2.2 を使用してアプリケーションを開発しています。

以前は、ユーザーがアップロードした画像やファイルをデータベースに入れていました。これにより、ノードを追加してアーキテクチャをクラスタ化したい場合に簡単になります。

今、私は本当にそれをやめて、アップロードしたファイルをリソースフォルダーに保存したいだけです(このような多くの理由で)。<img><h:graphicImage>

私の質問は、他のサーバーを追加したときにこれがどのように機能するかです。ファイルは、要求を処理するサーバーのリソース フォルダーにのみ保存され、他のサーバーには保存されません。

分散ファイルシステムの使用を提案する人がいるかもしれませんが、アプリ用にホスティング/クラウド サービスをレンタルしていて、実際にファイル システムを選択できない場合を除いて、これは素晴らしいことのように思えます。(この設定に切り替えることができない他の理由がある可能性があります)

JAVA EE は、リソース フォルダーを透過的に同期する方法を提供しますか? JSFはすでにバージョン管理やライブラリの管理などを処理していますが、ファイルの変更/アップロードですべてのサーバーがリソースフォルダーを最新の状態に保つように構成を設定できる可能性はありますか?

そうでない場合、代替手段は何ですか?

4

1 に答える 1

0

Java EE は、イメージをクラスターの共通フォルダーに同期する方法を提供していません。アプリサーバーはこれをサポートしている可能性がありますが、アプリサーバーでそのようなソリューションを認識していません。

あなたの状況に基づいて、NFS サーバーを使用し、すべてのクラスターからアクセスできる NFS サーバー ディレクトリ上のファイルを保持します。

ハードウェアの設定を変更することが許可されていない場合は、リソースをホストする Web サーバーを作成し、次のようにすべてのクラスターからリソースにアクセスできます。

<h:graphicImage value="http://myimageserver.local.com/sitename/foldername/xyz.gif"/>すべてのクラスターで。

于 2013-03-09T23:38:20.853 に答える