Назад | Перейти на главную страницу

Как получить доступ и хранить данные при настройке нескольких серверов

Мое приложение использует RESTful api для получения запросов от пользователей и создания файлов по запросу. Когда файл был создан, он отвечает ссылкой dl на указанный файл.

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

Но при настройке с несколькими серверами запрос может быть отправлен на сервер A, сохранен на сервере A, а пользователь подключился к ссылке dl через сервер B (на котором нет файла).

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

Идеи:

  1. Попросите все серверы записать указанные файлы на выделенный сервер «хранения», откуда будет передаваться ссылка для скачивания.
  2. Прикрепите ключ к концу имени файла, представляющий, на каком сервере находится файл.

Вы хотите использовать для этого централизованное хранилище.

Попытка синхронизировать загруженные файлы между серверами в долгосрочной перспективе нецелесообразна. Особенно если приходится иметь дело с большим объемом файлов.

В $ work у нас есть 10 веб-серверов, использующих один и тот же файловый сервер для чтения файлов и сохранения файлов. (Хотя больше читать, чем писать.)

Этот файловый сервер реплицируется на файловый сервер горячего резервирования с помощью DRBD в настройке главный / подчиненный.