Pregunta

Ok, Tornado es no bloqueante y bastante rápido y puede manejar una gran cantidad de solicitudes de pie fácilmente.

Pero supongo que no es una bala de plata y si a ciegas de ejecución basado en Django o cualquier otro sitio con Tornado no dará ningún aumento de rendimiento.

No podía encontrar una explicación completa de esto, así que estoy pidiendo aquí:

  • Cuando se debe utilizar Tornado?
  • ¿Cuándo es inútil?
  • Al usarlo, lo que debe tenerse en cuenta?
  • ¿Cómo podemos hacer ineficiente sitio usando Tornado?
  • Hay un servidor y un webframework. Cuando debemos usar marco y cuando podemos reemplazarlo con otro?
¿Fue útil?

Solución

  

Hay un servidor y un webframework. Cuando debemos usar marco y cuando podemos reemplazarlo con otro?

Esta distinción es un poco borrosa. Sólo si usted está sirviendo páginas estáticas, se utilizaría uno de los servidores rápida como LightHTTPD. De otra manera, la mayoría de servidores proporciona una complejidad variable de marco para desarrollar aplicaciones web. Tornado es un buen marco web. Twisted es aún más capaz y se considera un buen marco de redes. Tiene soporte para gran cantidad de protocolos.

Tornado y Twisted son marcos que proporcionan apoyo sin bloqueo, desarrollo de aplicaciones web asíncrono / redes.

  

Cuando se debe utilizar Tornado?   ¿Cuándo es inútil?   Al usarlo, lo que debe tenerse en cuenta?

Por su propia naturaleza, asíncrono / no-bloqueo de E / S funciona muy bien cuando se trata de E / S intensiva y no computación intensiva. La mayoría de los trajes de aplicaciones web / redes así para este modelo. Si su aplicación exige cierta tarea intensiva de cálculo que se haga, entonces tiene que ser delegada a algún otro servicio que puede manejarlo mejor. Mientras Tornado / Twisted puede hacer el trabajo del servidor web, en respuesta a las peticiones web.

  

¿Cómo podemos hacer sitio ineficiente uso de Tornado?

  1. Realiza una intensa tarea computacional cosa
  2. Introducir el bloqueo de las operaciones
  

Pero supongo que no es una bala de plata y si a ciegas de ejecución basado en Django o cualquier otro sitio con Tornado no dará ningún aumento de rendimiento.

El rendimiento es por lo general una característica de la arquitectura completa de aplicaciones web. Se puede reducir el rendimiento de la mayoría de los frameworks web, si la aplicación no está diseñado adecuadamente. Piense en el almacenamiento en caché, balanceo de carga, etc.

Tornado y Twisted proporciona un rendimiento razonable y es bueno para la construcción de una aplicación web de buen calidad. Se puede extraer de los testimonios, tanto para trenzado y tornado a ver lo que son capaces de hacer.

Otros consejos

Lo siento por responder a una vieja pregunta, pero me encontré con éste y se preguntó por qué no tenía más respuestas. Para responder a la pregunta de Bart J:

  

Me gustaría analizar los canales RSS en la aplicación del tornado. ¿Consideraría que bastante computacionalmente intensivas?

Bueno, eso depende de qué tipo de análisis que está haciendo y en qué hardware :) Mucho tiempo es mucho tiempo, así que si su aplicación requiere más que digamos medio segundo para responder, se va a parecer débil - el perfil de su aplicación.

La clave para sistemas rápidos es la gran arquitectura, no tanto los detalles como, por ejemplo, cuál es el marco que está utilizando (Twisted, Tornado, Apache + PHP). Tornado tiene un estilo de procesamiento asíncrono y eso es realmente lo que muchos de ellos se reduce a en mi opinión. Node.js, retorcido y pian son ejemplos de otros servidores web asíncronos que escala muy bien debido a un enfoque ligero y estilo de procesamiento asíncrono.

Así que:

  

Cuando se debe utilizar Tornado?

     

Cuando es inútil?

Tornado es bueno para el manejo de una gran cantidad de conexiones, ya que puede responder a un cliente entrante, enviará un controlador de solicitudes y no pensar que el cliente hasta que el resultado de devolución de llamada-se empuja en la cola de eventos. Así que para que la calidad específica del tornado se debe utilizar cuando se quiere escalar bien al manejar una gran cantidad de peticiones. El procesamiento asíncrono facilita el desacoplamiento funcional y acceso a datos compartición nula. Que se balancea muy bien con el diseño sin estado como RESTO u otro arquitectura orientada a servicios s. También no tiene que lidiar con el desove hilos o procesos con la sobrecarga inherente tanto y se puede ahorrar algo de bloqueo / IPC problemas.

Tornado no hará mucha diferencia, por otro lado, si su backend y / o almacén de datos lleva mucho tiempo para procesar las solicitudes. Ayuda a hacer diseños concurrentes y servicios Web en particular. La arquitectura concurrente hace que sea más fácil de la escala de su diseño y mantener el bajo acoplamiento. Esa es mi experiencia con Tornado por lo menos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top