Tornado ist „ein relativ einfacher, nicht-blockierenden Web-Server-Framework in Python geschrieben“ - kann etwas erklären, was das bedeutet?

StackOverflow https://stackoverflow.com/questions/1419624

  •  07-07-2019
  •  | 
  •  

Frage

Dies ist wahrscheinlich eine dumme Frage, aber was genau ist ein „non-blocking Web-Server“? Alle Web-Server technisch nicht blockierend sind, Arent sie? sonst wie könnten sie umgehen gleichzeitige Verbindungen? Apache2 erreicht dies eine Kombination aus Gabel () und pthreads. Wie genau sind Tornado (and Twisted auch) anders? Sie setzen sie nur ein Bündel von Sockets nicht-bocking Modus, bauen eine FD-Liste (oder gleichwertig), und dann die Schleife über die mit einem großen select () sys Anruf?

Wo würden Sie einen Rahmen wie diese verwenden, und welche Vorteile können sie Ihnen über Apache2 (oder anderen beliebten Server)? Dank

War es hilfreich?

Lösung

Das Artikel rel="nofollow auf eventmachine Sie können auch einen Hinweis geben:

  

Eingetaucht in der Tradition von Forking /   Gewinde Web-Server fand ich mich   eher überrascht, als ich kam einer von   die Forschungsprojekte an der Universität   ein paar Jahre Waterloo zurück: wir   wurden Benchmarking verschiedenen Web-Server   Architekturen und Top-Performer waren   alle ereignisgesteuerten Server.

     

Wie ich jeder mit Fragen bedrängt,   Ich wurde schnell klar, warum - in einem   Umwelt mit Hunderttausenden   fordert einen zweiten, gabelt und Kontext   Schalten mit Thread zugeordnet   Management werden unerschwinglich   teuer (Gabel ist schlechtesten ab, wie   es hat eine Speicherkopie auf dem übergeordneten   verarbeiten jedes Mal). während durch   Vergleich, eine dichte und hoch   optimierte Event-Loop wirklich glänzt   wenn es um die Leistung unter   schwere Lasten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top