アップロードプロセス中にTomcatが失敗するとどうなりますか。単に50倍のエラーをスローしますか?サーバー障害を適切に処理し、残りの要求を別のサーバーに転送することは可能ですか?
2 に答える
特にTomcatについてはわかりませんが、これはTCP接続です。アップロードが失敗すると、TCP 接続が切断されます。クライアントはアップロードを中止します。
ファイル内の特定の位置でアップロードを再開できる再試行機能がクライアントにある場合は、新しいサーバーで再開できます。一般に、これは Web クライアントの一般的な機能ではありません。大きなファイルをアップロードする多くのサイトには、アップロードの再開を統合するフラッシュ クライアントがあります。
これをより透過的に行いたい場合は、TCP ストリームを監視し、TCP 状態を維持する Web フロントエンドを使用できます。障害が発生した場合は、その状態を新しいサーバーに転送し、ストリームを渡して、TCP ストリームが最初から壊れていないかのようにアップロードを続行できます。
ただし、これは些細なことではなく、新しい障害点をもたらします。主な利点は、クライアントが接続を切断しない限り、どのクライアントでも機能することです (クライアント側で壊れたダウンロードを再開することはできず、サーバーの障害のみを解決できます)。
-アダム
ある種のロードバランサー/フェイルオーバーが必要なようです。基本的に、複数のコンピューターのフロントエンドとして機能するマシンです。外部からのトラフィックをリッスンし、クラスター内のノードに転送(計算)します。1つのノードに障害が発生した場合、そのノードはトラフィックを別のコンピューターに再ルーティングする方法を知っています。したがって、これには、すべてのノードが互いに同期している必要があります。これにより、TCP送信などのトランザクションを、ビートをスキップすることなく続行できます。
これは、ソフトウェアではなくハードウェアで最も一般的に実装されます。いずれにせよ、実装するのはそれほど簡単ではありません。