3

ユーザーが写真をアップロードして、アップロード後に指定したページに表示できるようにするWebアプリケーションがあります。アップロードモジュールは、爆発した戦争ディレクトリ内に画像を配置します。たとえばwebapp-root/uploads/、画像がアップロードされると、のようにすぐに表示できるようになりhttp://mydomain.com/uploads/123.pngます。

これは1つのアプリケーションサーバーで機能していましたが、結局のところ、このアプリを2つの負荷分散サーバーにデプロイすることになりました。そこで、ユーザーが画像をアップロードするたびに、FTPを使用してサーバー間でファイルを同期するクイックファイル同期モジュールをコーディングしました。基本的に、ユーザーがに画像をアップロードするとserver1/uploads/、すぐにFTP経由でにコピーしますserver2/uploads/

編集(アップロードプロセスを追加):アップロードは次のようになります:

  • ユーザーが画像を選択して送信
  • サーバーはファイルをに保存しますserver1/uploads/
  • バックグラウンドスレッドはserver1からserver2/uploads/(非同期で実行)へのFTP同期を実行します
  • server2の場合はその逆

この時点で、私は問題に直面しています。

URLhttp://mydomain.comは、ハードウェアロードバランサーを使用してserver1またはserver2のいずれかを指します。ユーザーがイメージをserver1にアップロードした場合(サーバー2に同期された場合)、ロードバランサーがserver1またはserver2のどちらに誘導したかに関係なく、test-image.pngを介してイメージにアクセスできると想定します。http://mydomain.com/uploads/test-image.png

ただし、これは当てはまりません。例を続けると、ドメインがserver1を指しているときにアップロードされた画像は、server1にリダイレクトされた場合にのみ表示でき、2番目のユーザーが同じURLにアクセスしたが、ロードバランサーが彼をserver2に誘導したhttp://mydomain.com/uploads/test-image.png場合はリンク切れとして表示されます。

そのため、warディレクトリ内のイメージをFTPコピーするたびに、JBossが2番目のサーバーを更新していないようです。server1に画像をアップロードすると、そのサーバー上のJBossインスタンスが問題なく画像ファイルを提供するため、これはちょっと奇妙なことです。

JBossに「ねえ、ここに新しい画像ファイルがあります」と手動で伝える方法はありますか?

4

1 に答える 1

0

問題を受信サーバー上の破損したファイルに絞り込みました。特定のドライブのファイルのアクセス許可/暗号化により、FTPサーバーが画像を正常にコピーできないようです。そのため、同期されたすべての画像を画像ビューアで表示できません。

これらのユーザー権限の問題を解決する必要があります。その間、誰かが他の考えられる原因にもう少し光を当てることができる場合に備えて、私はこの質問を開いたままにしておきます。

于 2012-09-28T07:33:34.713 に答える