Question

Ok, Tornado est non bloquant et assez rapide et il peut gérer un grand nombre de demandes debout facilement.

Mais je suppose que ce n'est pas une balle d'argent et si nous courons aveuglément Django-base ou tout autre site avec Tornado il ne donnera pas gain de performance.

Je ne pouvais pas trouver l'explication complète de cela, donc je demande ici:

  • Quand faut-il utiliser Tornado?
  • Quand est-il inutile?
  • Lorsque vous l'utilisez, ce qui doit être pris en compte?
  • Comment pouvons-nous inefficaces site en utilisant Tornado?
  • Il y a un serveur et un webframework. Quand devrions-nous utiliser le cadre et quand pouvons-nous le remplacer par un autre?
Était-ce utile?

La solution

  

Il y a un serveur et un webframework. Quand devrions-nous utiliser le cadre et quand pouvons-nous le remplacer par un autre?

Cette distinction est un peu floue. Seulement si vous êtes au service de pages statiques, vous devez utiliser un des serveurs rapide comme lighthttpd. D'autres sages, la plupart des serveurs fournit une complexité variable du cadre pour développer des applications Web. Tornado est un bon framework web. Twisted est encore plus capable et est considéré comme un bon cadre de la mise en réseau. Il a le soutien de beaucoup de protocoles.

Tornado et vrillées sont des cadres qui offrent un soutien non-blocage, le développement d'applications web / réseau asynchrone.

  

Quand faut-il utiliser Tornado?   Quand est-il inutile?   Lors de son utilisation, ce qui devrait être pris en compte?

Par sa nature même, Async / non-blocage des E / S fonctionne très bien quand il est intensif d'E / S et non le calcul intensif. La plupart des applications web / réseau convient bien pour ce modèle. Si votre application exige certaines tâches de calcul intensif à faire, alors il doit être délégué à un autre service qui peut gérer mieux. Alors que Tornado / Twisted peut faire le travail du serveur Web, répondant aux requêtes Web.

  

Comment rendre le site inefficace en utilisant Tornado?

  1. Effectuez l'une des tâches intensives de calcul chose
  2. Présentez les opérations bloquantes
  

Mais je suppose que ce n'est pas une balle d'argent et si nous courons aveuglément Django-base ou tout autre site avec Tornado il ne donnera pas gain de performance.

La performance est généralement une caractéristique de l'architecture de l'application web complète. Vous pouvez faire baisser les performances avec la plupart des cadres web, si l'application n'a pas été conçu correctement. Pensez à la mise en cache, équilibrage de charge, etc.

Tornado et Twisted offre des performances raisonnables et est bon pour la construction d'une application web très performant. Vous pouvez consulter les témoignages à la fois tordu et tornade pour voir ce qu'ils sont capables.

Autres conseils

Je suis désolé d'avoir répondu à une question ancienne, mais je suis tombé sur celui-ci et se demande pourquoi il n'a pas eu plus de réponses. Pour répondre à la question de Bart J:

  

Je voudrais analyser les flux RSS dans l'application Tornado. Est-ce que vous considérez que assez intensive informatiquement?

Et bien cela dépend de ce genre d'analyse que vous faites et sur quel matériel :) Long temps est long, donc si votre application prend plus de dire une demi-seconde pour répondre, il semblera lent - le profil de votre app.

La clé de systèmes rapides est grande architecture, non pas tant les spécificités comme par exemple quel cadre que vous utilisez (Twisted, Tornado, Apache + PHP). Tornado a un style de traitement asynchrone et qui est vraiment ce que beaucoup de celui-ci se résume à mon avis. Node.js, tordu et pian sont des exemples d'autres serveurs Web asynchrones échelle très bien en raison d'une approche légère et le style de traitement asynchrone.

  

Quand faut-il utiliser Tornado?

     

Quand est-il inutile?

Tornado est bon pour la manipulation d'un grand nombre de connexions, car il peut répondre à un client entrant, distribuez un gestionnaire de requêtes et ne pense pas à ce client jusqu'à ce que le résultat-rappel est poussé sur la file d'attente. Donc, pour que Tornado de qualité spécifique doit être utilisé lorsque vous voulez bien à l'échelle lors de la manipulation d'un grand nombre de demandes. Le traitement async facilite le découplage fonctionnel et l'accès aux données sans partage. Qui oscille vraiment bien avec la conception sans état comme REST ou autre service l'architecture orientée s. Vous n'avez pas à traiter avec des fils de frai ou de processus avec les frais généraux inhérents tant et vous pouvez économiser du verrouillage / IPC du mal.

Tornado ne fera pas beaucoup de différence, d'autre part, si votre back-end et / ou un magasin de données prend beaucoup de temps pour traiter les demandes. Il aide à faire des conceptions concurrentes et des services Web en particulier. L'architecture concurrente facilite à l'échelle de votre conception et garder le faible couplage. C'est mon expérience avec Tornado au moins.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top