Django: как обслуживать пользовательские изображения и эскизы с разных серверов? - PullRequest
4 голосов
/ 11 апреля 2011

Для моего сайта Django я хотел бы:

  1. Принимать изображения, отправленные пользователями
  2. Создание миниатюр из этих изображений
  3. Поместить оба исходных изображенияи миниатюры на отдельных серверах, которые предназначены для обслуживания изображений

Мне нужно несколько отдельных серверов для обслуживания изображений / миниатюр, чтобы обеспечить достаточную производительность ввода-вывода.

Чтонаилучший способ построить систему обслуживания распределенных изображений, как это?Любое программное обеспечение с открытым исходным кодом, которое поможет?

Спасибо.

1 Ответ

4 голосов
/ 11 апреля 2011

Это звучит как работа для распределенных очередей задач. Мой личный фаворит - Beanstalkd B / C, он настолько легкий и простой в использовании.

Сервер: https://github.com/kr/beanstalkd
Клиентская библиотека: https://github.com/PeterScott/beanstalkc
Помощник Джанго: https://github.com/jonasvp/django-beanstalkd

Как это будет работать, так:
1. Файл загружается и хранится локально
2. Работа создается в виде загрузки и помещается в трубочный боб
3. Бобовые стебли наблюдают за работой труб, они берут новую работу
4. Работник может создавать эскизы и распространять их на столько серверов, сколько вам нужно

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...