2009-04-07 1 views
2

Что происходит, когда Tomcat терпит неудачу во время процесса загрузки. Будет ли это просто выбросить ошибку 50X. Можно ли изящно обрабатывать сбой сервера и перенаправлять остальную часть запроса на другой сервер.Может ли длинная загрузка файла обрабатываться кластером (Tomcat) серверов, где, если один сервер выходит из строя/сбой во время загрузки, другой выбирает его

ответ

3

Я точно не знаю о tomcat, но это TCP-соединение. Если загрузка завершится неудачей, соединение TCP перестанет работать. Клиент прекратит загрузку.

Если у клиента есть возможности повторной попытки, позволяющие перезагрузить загрузку в данной позиции в файле, его можно перезапустить с помощью нового сервера. В общем, это не общая способность веб-клиентов, многие сайты с большой загрузкой файлов имеют flash-клиенты, которые интегрируют возобновление загрузки.

Если вы хотите сделать это с большей прозрачностью, то вы можете иметь веб-интерфейс, который следит за потоками TCP и поддерживает состояние TCP. Если он обнаружит сбой, он может передать это состояние новому серверу и передать ему поток, чтобы продолжить загрузку, как если бы поток TCP никогда не прерывался.

Это не тривиально, но и вводит новую точку отказа. Основное преимущество заключается в том, что он будет работать с любым клиентом, если клиент не откажется от соединения (он может только разрешать сбои сервера на вашей стороне, а не возобновлять загрузки, поврежденные на стороне клиента)

Adam

0

Похоже, что вам нужен какой-то load balancer/failover. В принципе, машина, которая выступает в качестве интерфейса перед несколькими компьютерами - она ​​прослушивает трафик извне и пересылает его узлам (вычисляет) внутри кластера. Если один узел выходит из строя, он знает, как перенаправить трафик на другой компьютер. Это потребовало бы, чтобы все узлы были синхронизированы друг с другом, так что такие транзакции, как передача TCP, могут быть продолжены без пропусков.

Это чаще всего используется в аппаратных средствах, а не в программном обеспечении. В любом случае это не очень тривиально.

Смежные вопросы