長いファイルのアップロードは、アップロード中(Tomcatの)一つのサーバに障害が発生した場合のサーバ/クラッシュのクラスタによって処理することができ、他の一つは、それをピックアップ

StackOverflow https://stackoverflow.com/questions/727394

質問

Tomcatは、アップロード処理中に失敗したときに何が起こります。それは単純に50倍のエラーがスローされます。それは優雅にサーバ障害を処理し、別のサーバーへの要求の残りの部分を転送することが可能です。

役に立ちましたか?

解決

私は、具体的にTomcatのことは知らないが、これはTCP接続です。アップロードが失敗した場合、TCP接続がドロップします。クライアントは、アップロードを中止するでしょう。

クライアントは、それはそれは、新しいサーバーで再起動することができ、ファイル内の指定された位置でのアップロードを再開できるようにする機能を再試行している場合。一般的に、これは、Webクライアントの一般的な機能ではない、大きなファイルのアップロードと多くのサイトは、アップロード再開を統合するFlashクライアントを持っています。

あなたがより透明でこれを行うにしたい場合は、

、あなたはTCPストリームを監視し、TCPの状態を維持したWebフロントエンドを持つことができます。それが失敗したことを観測した場合、それは新しいサーバーにその状態を転送し、TCPストリームが最初の場所で壊れていなかったかのようにアップロードを継続することにストリームを渡すことができます。

これは、しかし、些細なことではない、と失敗の新しいポイントを紹介しません。主な利点は、それが(それだけで、あなたの側にサーバの障害を解決し、クライアント側で壊れたダウンロードを再開することはできません)限り、クライアントが接続をドロップしないよう、すべてのクライアントで動作しますです。

-Adam

他のヒント

あなたはロードバランサに/ <のhref =のいくつかの種類を必要とするように

これは聞こえます"http://en.wikipedia.org/wiki/Failover" のrel = "nofollowをnoreferrer">フェイルオーバーする。基本的に、複数のコンピュータのフロントエンドとして機能するマシンは - それは外部からのトラフィックをリッスンし、クラスタ内のノード(計算する)に転送します。一方のノードに障害が発生した場合、それは別のコンピュータにトラフィックを再ルーティングする方法を知っています。これは、その後、TCP送信などの取引がビートをスキップすることなく継続することができるように、すべてのノードが、相互に同期してなることが必要になります。

これは、最も一般的なハードウェアではなくソフトウェアで実装されています。どのような場合には、実装するのは非常に簡単ではない。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top