apache2 - async - tornado pelicula
Tornado es "un marco de servidor web sin bloqueo relativamente simple escrito en Python". ¿Puede explicar algo lo que eso significa? (1)
Esta es probablemente una pregunta estúpida, pero ¿qué es exactamente un "servidor web sin bloqueo"? Todos los servidores web son técnicamente no bloqueantes, ¿verdad? De lo contrario, ¿cómo podrían manejar las conexiones simultáneas? Apache2 logra esto usando una combinación de fork () y pthreads. ¿Cómo son exactamente diferentes Tornado (y Twisted)? ¿Acaban de configurar un grupo de sockets en modo no bocking, construyen una lista FD (o equivalente) y luego pasan por encima con una gran llamada de sistema select ()?
¿Dónde usaría un marco como estos, y qué ventajas le pueden ofrecer sobre Apache2 (u otros servidores populares)? Gracias
Este artículo en EventMachine también puede darte una pista:
Empapado en la tradición de los servidores web de bifurcación / hilos, me sorprendí bastante cuando me uní a uno de los proyectos de investigación en la Universidad de Waterloo hace un par de años: estábamos comparando diferentes arquitecturas de servidor web, y los de mejor desempeño fueron todos eventos Servidores accionados.
Cuando molesté a todos con preguntas, rápidamente me di cuenta de por qué: en un entorno con cientos de miles de solicitudes de un segundo, el bifurcación y el cambio de contexto asociados con la gestión de subprocesos se vuelven prohibitivos (la bifurcación tiene el peor rendimiento, al igual que una copia de memoria en el proceso principal cada vez). Mientras que, en comparación, un circuito de eventos ajustado y altamente optimizado realmente brilla cuando se trata de rendimiento bajo cargas pesadas.