[Moscow.pm] Задачка
Kaltashkin Eugene
zhecka на gmail.com
Сб Ноя 24 04:02:31 PST 2007
Михаил Монашёв пишет:
> Здравствуйте Евгений,
>
>
>>> Давно хочу понять как правильнее реализовать следующую задачку.
>>> Предположим есть 2 сервера. На первом крутится апач с mod_perl, сюда
>>> закачивают картинки, mp3, видео. Тут картинки ресайзятся, mp3 b видел
>>> перекодируется. Потом по webdav-у закачивается на второй сервере, с
>>> которого раздаётся юзерам nginx-ом. В итоге имеется проблема: на
>>> первом процессор перегружен, на втором вообще отдыхает. Поэтому есть
>>> желание пересчёт файлов перенести на второй сервер.
>>>
>>> И схема будет следующая: на первый сервер заливается картинка, mp3 или
>>> видео, потом копируется webdav-ом на второй сервере, потом вызывается
>>> для неё обработка (ресайз или пересчёт), потом она начинает раздавать
>>> в инет. Причём картинки хотелось бы ресайзить сразу же.
>>>
>>> Вопрос: как правильно второму серверу сказать, что ему нужно делать.
>>> Напрашивается решение - дёргать по RPC второй сервер. Но разных RPC
>>> много, Гирман и Шварц напримен, а нужно выбрать самый лучший :-) Ну
>>> или своё какое-то решение написать.
>>>
>>> Как бы Вы реализовали подобную задачу?
>>>
>
> KE> легко. берется NFS, сервера вяжутся между собой, далее по cron дергаем
> KE> содержимое NFS папок
> KE> с каждого сервера в разное время. При обработке файла создаём .lock
> KE> файл, чтобы не обрабатывать дважды.
> KE> Далее конверченные файлы уже заливаем туда куда нужно.
>
> NFS - это редкостное глюкало.
>
>
Вы не любите кошек ? Вы просто не умеете их готовить :)
Видел реализацию sshfs и ftpfs, только ssh будет грузить камень при
передаче файлов, а FTP отваливаться по таймауту бездействия.
> Да и зачем гонять по сети туда-сюда файлы? Файл должен обрабатываться
> там, где он лежит.
>
Насколько я понял файлы сначала заливаются на один сервер, потом
конверченые копируются на другой.
> Я наверное неверно сформулировал задачу: нужно правильно реализовать
> вызов функций обработки файлов, расположенных на втором сервере, с
> первого сервера. Варианты вызова: "обработай прямо сейчас" или
> "обработай как только сможешь".
>
В этом случае можно дергать LA обоих системы и балансировать нагрузку на
них.
Подробная информация о списке рассылки Moscow-pm