Domanda

OK, il tornado non è bloccante e abbastanza veloce e può gestire facilmente molte richieste permanenti.

Ma immagino che non sia un proiettile d'argento e se gestiamo ciecamente basato su Django o qualsiasi altro sito con tornado non darà alcuna spinta per le prestazioni.

Non sono riuscito a trovare una spiegazione completa di questo, quindi lo sto chiedendo qui:

  • Quando dovrebbe essere usato il tornado?
  • Quando è inutile?
  • Quando lo usi, cosa dovrebbe essere preso in considerazione?
  • Come possiamo fare inefficiente Sito usando tornado?
  • C'è un server e un WebFramework. Quando dovremmo usare Framework e quando possiamo sostituirlo con un altro?
È stato utile?

Soluzione

  

C'è un server e un webframework. Quando dovremmo usare framework e quando possiamo sostituirlo con altro?

Questa distinzione è un po 'sfocata. Solo se si sta servendo pagine statiche, si può usare uno dei server veloce come LightHTTPD. Altri saggi, la maggior parte dei server fornisce una complessità variabile di framework per lo sviluppo di applicazioni web. Tornado è un framework web buona. Ritorto è ancora più capace ed è considerato una struttura di rete buona. Ha il supporto per molti protocolli.

Tornado e Twisted sono strutture che forniscono il supporto non-blocking, web asincrono di sviluppo collegamenti rete / applicazioni.

  

Quando deve essere usato Tornado?   Quando è inutile?   Se lo si usa, che cosa dovrebbe essere preso in considerazione?

Per sua stessa natura, Async / non-blocking I / O funziona alla grande quando si tratta di I / O intensive e non di calcolo intensivo. La maggior parte delle applicazioni web / rete adatta bene per questo modello. Se l'applicazione richiede certo compito intensivo di calcolo da fare per questo, deve essere delegata a qualche altro servizio che può gestire meglio. Mentre Tornado / ritorto può fare il lavoro di web server, rispondendo alle richieste web.

  

Come possiamo rendere inefficiente sito utilizzando Tornado?

  1. Eseguire una computazionale compito intensiva cosa
  2. Introdurre il blocco operazioni
  

Ma immagino che non è un proiettile d'argento e se ci limitiamo a correre alla cieca Django o basato su qualsiasi altro sito con Tornado non darà alcun incremento delle prestazioni.

Le prestazioni sono di solito una caratteristica di completa architettura delle applicazioni web. È possibile abbattere le prestazioni con la maggior parte framework web, se l'applicazione non è stata progettata in modo corretto. Pensateci la cache, bilanciamento del carico, ecc

Tornado e Twisted offre prestazioni ragionevoli ed è buono per la costruzione di un'applicazione web molto performante. È possibile controllare le testimonianze sia contorto e tornado a vedere cosa sono capaci di fare.

Altri suggerimenti

Mi dispiace per rispondere a una vecchia questione, ma mi sono imbattuto in questo e mi chiedevo perché non ha avuto più risposte. Per rispondere alla domanda di Bart J:

  

Vorrei analizzare i feed RSS nell'applicazione Tornado. Vuoi prendere in considerazione che abbastanza computazionalmente intensive?

Beh, questo dipende da che tipo di voi l'analisi sta facendo e su quale hardware :) Molto tempo è un tempo lungo, quindi se la vostra applicazione richiede più di dire mezzo secondo a rispondere, sembrerà lenta - il profilo del app.

La chiave di sistemi veloci è grande architettura, non tanto le specifiche come ad esempio quale quadro si sta utilizzando (Twisted, Tornado, Apache + PHP). Tornado ha uno stile elaborazione asincrona e questo è davvero quello che un sacco di si tratta di a mio parere. Node.js, Contorto e Framboesia sono esempi di altri server web asincroni che scala molto bene a causa di un approccio leggero e uno stile elaborazione asincrona.

  

Quando deve essere usato Tornado?

     

Quando è inutile?

Tornado è un bene per la gestione di un sacco di connessioni, in quanto in grado di rispondere a un client in arrivo, inviare un gestore di richiesta e non pensare a quel cliente fino a quando il risultato-richiamata viene spinto sulla coda degli eventi. Così per quella qualità specifica Tornado dovrebbe essere usato quando si vuole scalare bene quando si maneggia un sacco di richieste. L'elaborazione asincrona facilita disaccoppiamento funzionale e accesso dati condivisi-niente. Che oscilla molto bene con il design senza stato come REST o altro Service Oriented Architecture s. Inoltre non avere a che fare con la deposizione delle uova thread o processi con l'overhead intrinseca così tanto e si può risparmiare un po 'di bloccaggio / IPC problemi.

Tornado non farà molta differenza, d'altra parte, se il backend e / o memorizzare dati richiede molto tempo per elaborare le richieste. Aiuta a fare i disegni concorrenti e servizi Web in particolare. L'architettura concomitante rende più facile per scalare il vostro disegno e mantenere il basso accoppiamento. Questa è la mia esperienza con Tornado almeno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top