voy a tener un sitio web con 20k+ usuarios simultáneos.

voy a usar mongodb con un nodo de administración y 3 o más nodos de datos de la fragmentación.

ahora mi problema es el número máximo de conexiones. si tengo que muchos de los usuarios que acceden a la base de datos, ¿cómo puedo asegurarme de que no le alcance el límite máximo? también voy a tener que cambiar nada en el kernel para aumentar las conexiones?

básicamente la base de datos será utilizada para mantener el asimiento de los usuarios conectados al sitio, así que hay va a ser pesado operaciones de lectura/escritura.

gracias de antemano.

  • el uso de conexiones persistentes, fishing en la mayoría de los mongodb conductores.
  • Sería de gran ayuda un poco para saber de su preferencia de la pila (LÁMPARA/PHP/Perl/Python/Ruby on Rails/Apache/Tomcat/Windows/Linux?)

1 Comentario

  1. 23

    Usted no desea abrir una nueva conexión de base de datos cada vez que un nuevo usuario se conecta. No sé si voy a ser capaz de escalar a 20k+ usuarios simultáneos fácilmente, ya que MongoDB utiliza un hilo nuevo para cada nueva conexión. Quieres que tu web app backend tener uno solo para un par de conexiones de base de datos abrir y usar sólo aquellos en una piscina, en particular desde el uso de la web es muy asincrónica y por evento.

    ver: http://www.mongodb.org/display/DOCS/Connections

    El servidor utilizará un thread por TCP
    conexión, por lo tanto es altamente recomendable que la aplicación
    utilizar a algún tipo de agrupación de conexiones. Por suerte, la mayoría de los conductores manejar esta
    por detrás de las escenas. Una excepción notable es las configuraciones donde su
    la aplicación genera un nuevo proceso para cada solicitud, tales como CGI y algunos
    configuraciones de PHP.

    Cualquier controlador que está utilizando, usted tendrá que encontrar la manera de manejar las conexiones y si a la piscina o no. Por ejemplo, el Nodo de la Mangosta es sin bloqueo y por lo que usar una conexión por aplicación normalmente. Este es el tipo de cosa que usted probablemente desee.

    • gracias por tu respuesta, ahora estoy de total noob.. ¿Qué es este controlador está hablando? ¿cómo puedo configurarlo? gracias
    • Así, el modelo de programación que desea utilizar está basada en eventos de la programación y no en el hilo de un modelo basado en la que estás pensando. Node.js+Express+Mangosta+MongoDB es un popular pila para esto. Si estás en Perl, mira en Mojolicious o AnyEvent. El problema que se va a ejecutar en caso de que no utilice una evented sistema, es el C10k problema: kegel.com/c10k.html tengo un ejemplo de un Node.js web app aquí: github.com/EhevuTov/netPeek
    • Sé que ha pasado un tiempo desde que respondieron a esta pregunta, pero podría dar más idea de lo que una «conexión» es? Es el acto de realizar una consulta o escribir datos en la DB, o es llamar a la función de conexión y de paso la URL de base de datos? Estoy usando la Mangosta, así que estás diciendo que la Mangosta, sólo se abre una conexión por cada instancia de la aplicación, lo que significa que incluso si tuviera 500 usuarios de realizar operaciones simultáneas (como la consulta de datos), entonces el Atlas sólo ver que como una conexión, incluso cuando el servidor está alojado en Heroku? Gracias.

Dejar respuesta

Please enter your comment!
Please enter your name here