Загрузка изображений-CDN, MongoDB или NFS?


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

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

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

3 7

3 ответа:

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

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

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

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

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

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