2010-10-20 21 views

Respuesta

12

Un servidor web necesita para manejar conexiones simultáneas. Hay muchas maneras de hacerlo, algunas de ellas son:

  • Un proceso por conexión.
  • Un proceso por conexión y tiene un conjunto de procesos listos para usar.
  • Un hilo por conexión.
  • Un hilo por conexión, y tiene un grupo de hilos listo para usar.
  • Un solo proceso, maneja cada evento (conexión aceptada, datos disponibles para leer, puede escribir al cliente, ...) en una devolución de llamada.
  • Alguna combinación de las anteriores.
  • ...

Al final, la distinción termina siendo en la forma de almacenar cada estado de la conexión (de forma explícita en una estructura de marco, de manera implícita en la pila, de manera implícita en una continuación, ...) y cómo se programa entre las conexiones (deje que el programador del sistema operativo lo haga, deje que las primitivas de sondeo del sistema operativo lo hagan, ...).

1

forma controlada por eventos tiene como objetivo resolver el problema C10K. Convierte el tradicional 'modelo de empuje' en un 'modelo de extracción' para crear una E/S con bloqueo no bloqueado. En pocas palabras, la arquitectura impulsada por eventos evita generar hilos adicionales e indirectos de cambio de contexto de subprocesos, y generalmente termina con un mejor rendimiento y menos consumo de recursos.

Algunos visión general de un desarrollador de rieles, incluye también la analogía: http://odysseyonrails.com/articles/8

+0

Tenga en cuenta que las respuestas de solo enlace no se recomiendan, por lo que las respuestas deben ser el punto final de una búsqueda de una solución (frente a otra escala de referencias, que tienden a quedarse obsoletas en el tiempo). Considere agregar una sinopsis independiente aquí, manteniendo el enlace como referencia. – kleopatra

Cuestiones relacionadas