Загрузка изображений - CDN, MongoDB или NFS? - PullRequest
7 голосов
/ 04 апреля 2011

У меня есть система типа администратора для веб-сайта с несколькими веб-серверами, где пользователи могут настраивать страницы и загружать изображения для отображения на странице (похоже на CMS).Если у вас уже есть экземпляр MongoDB с настройками реплики, каков предпочтительный способ хранения этих загрузок, чтобы существовало аварийное переключение и почему?

  1. CDN, например Amazon S3 / CloudFront.
  2. Сохранить изображения в MongoDB?Я делаю это сейчас и не использую GridFS, потому что все наши образы имеют размер менее 1 МБ.
  3. Используйте какой-либо тип NFS с какой-либо настройкой отработки отказа.Если # 3, то как вы настраиваете это переключение при сбое?

Я сейчас использую # 2 очень хорошо и раньше использовал # 3 без переключения при сбое.Если я использую MongoDB в качестве хранилища данных для своего веб-сайта и для обслуживания изображений, могут ли эти запросы GET для изображений когда-либо повлиять на производительность по извлечению данных из не-изображения из БД?

Ответы [ 3 ]

8 голосов
/ 04 апреля 2011

Могут ли эти запросы GET для изображений повлиять на производительность по извлечению данных из БД, не относящихся к изображениям?

Что ж, больше запросов изображений = больше HTTP-соединений с вашими веб-серверами = больше запросов изображений из MongoDB = больше сетевого трафика.

Так что, да, получение большего количества данных изображения из БД теоретически может повлиять на получение данных не изображения. Все, что вам нужно сделать, это запросить 1000 изображений в секунду на 1 МБ изображения, и вы начнете видеть большой сетевой трафик между серверами MongoDB и веб-серверами.

Обратите внимание, что это не ограничение MongoDB, а ограничение пропускной способности сети.

Если вы начинаете получать много трафика, то CDN определенно рекомендуется. Если у вас уже есть страница HTTP, которая выводит изображение, это должно быть довольно просто.

5 голосов
/ 05 апреля 2011

Почему бы не CDN перед MongoDB?

0 голосов
/ 08 июля 2013

Redhat или кластеризация CentOS с общей файловой системой может обеспечить механизм восстановления после отказа для NFS.

...