2011-04-04 21 views
7

Tengo un sistema de tipo administrador para un sitio web con múltiples servidores web donde los usuarios pueden configurar páginas y cargar imágenes para que aparezcan en la página (algo así como un CMS). Si ya tiene una instancia de MongoDB con configuración de conjuntos de réplicas, ¿cuál es la forma preferida de almacenar estas cargas para que exista conmutación por error y por qué?Subidas de imágenes: ¿CDN, MongoDB o NFS?

  1. CDN, como Amazon S3/CloudFront.
  2. ¿Almacenar las imágenes en MongoDB? Hago esto ahora y no uso GridFS porque nuestras imágenes son todas menores de 1MB.
  3. Utilice algún tipo de NFS con algún tipo de configuración de conmutación por error. Si es # 3, ¿cómo se configura esta conmutación por error?

Uso el # 2 muy bien en este momento y he usado el # 3 sin la conmutación por error antes. Si utilizo MongoDB como almacén de datos para mi sitio web y para servir imágenes, ¿podrían estas solicitudes GET para las imágenes afectar el rendimiento de obtener datos sin imágenes de la base de datos?

Respuesta

8

¿Podrían estas solicitudes GET para las imágenes alguna vez afectar el rendimiento de obtener datos sin imágenes de la base de datos?

Bueno, más solicitudes de imágenes = más conexiones HTTP a sus servidores web = más solicitudes de imágenes de MongoDB = más tráfico de red.

Por lo tanto, sí, obtener más datos de imágenes de la base de datos podría, en teoría, afectar la obtención de datos sin imágenes. Todo lo que necesita hacer es solicitar 1000 imágenes/seg a 1 MB de una imagen y comenzará a ver mucho tráfico de red entre sus servidores MongoDB y sus servidores web.

Tenga en cuenta que esto no es una limitación MongoDB, esto es una limitación del rendimiento de la red.

Si comienza a recibir mucho tráfico, entonces definitivamente se recomienda la CDN. Si ya tiene una página HTTP que genera la imagen, esto debería ser bastante directo.

5

¿Por qué no un CDN en frente de MongoDB?

+0

Gracias por la idea. Acabo de encontrarme con [GridFS versus CDN] (http://groups.google.com/group/mongodb-user/browse_thread/thread/fa2963c175fe325f/6b76caa93f0ba8ee) – Bradford

+1

jaja ... ¡ese soy yo! – luckytaxi

0

El clúster Redhat o CentOS con un sistema de archivos compartido puede proporcionar un mecanismo de recuperación de fallas para NFS.