Tornado (Webserver)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. September 2023 um 11:12 Uhr durch Phzh (Diskussion | Beiträge) (Form, typo). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen
Tornado

Basisdaten

Entwickler Facebook, Bret Taylor
Erscheinungsjahr 2009
Aktuelle Version 6.4.1[1]
(6. Juni 2024)
Betriebssystem plattformunabhängig
Programmier­sprache Python
Kategorie Webserver, Webframework
Lizenz Apache-Lizenz 2.0
www.tornadoweb.org

Tornado ist ein freier, nicht blockierender Webserver sowie ein einfaches Mikro-Webframework in Python.[2] Die Entwicklung begann bei FriendFeed, nach der Übernahme von FriendFeed durch Facebook[3] wurde Tornado unter einer Open-Source-Lizenz veröffentlicht[4][5].

Leistung

Der Tornado-Webserver nutzt Wartezeiten, zum Beispiel beim Empfang von Daten, indem er sich währenddessen weiteren Aufgaben zuwendet (unter Linux mit epoll, unter BSD mit kqueue)[6]. Dieses nicht blockierende Verhalten dient dazu, eine sehr große Zahl von Anfragen gleichzeitig abzuwickeln (C10K-Problem).[7] Messungen ergeben über 8.000 bearbeitete Anfragen pro Sekunde.

Performance-Vergleich mit dem AMD Opteron, 2,4 GHz und vier Kernen[8]
Server Setup Anfragen pro Sekunde
Tornado Mit der geläufigen produktiven Umsetzung von 4 Tornadoinstanzen und nginx als Proxy. 8213
Tornado Standalone 3353
Django Apache/mod wsgi 2223
web.py Apache/mod_wsgi 2066
CherryPy Standalone 785

Module

Tornado stellt Mixins für die Authentifizierungssysteme OpenID und OAuth zur Verfügung, mit vereinfachter Anbindung an die Authentifizierungsschnittstellen von Google, Facebook Connect und Twitter.

Die asynchrone Bearbeitung von Anfragen war von Anbeginn Kernelement von Tornado. Seit Python 3.5 werden hierfür statt eines eigenen Moduls die Python-Sprachelemente async def und await genutzt.[9] Eine Beispielanwendung zeigt die Verwendung im FriendFeeds Chatsystem.

Daneben stehen die gängigen Komponenten eines Mikro-Webframeworks zur Verfügung:

  1. Verwendung in Jupyter Notebooks

Einzelnachweise

  1. Release 6.4.1. 6. Juni 2024 (abgerufen am 27. Juni 2024).
  2. Hauptseite des Tornado Projects. Abgerufen am 5. April 2013 (englisch).
  3. Facebook Acquires FriendFeed. 10. September 2009, abgerufen am 22. Oktober 2013 (englisch).
  4. Liste der OpenSource Projecte von Facebook. Abgerufen am 5. April 2013 (englisch).
  5. Talking about Tornado. 25. September 2009, abgerufen am 22. Oktober 2013 (englisch).
  6. Installationshinweis zu Tornado. Abgerufen am 5. April 2013 (englisch).
  7. Dory, Michael, Adam Parrish, and Brendan Berg. Introduction to Tornado. O’Reilly Media, 2012.
  8. Tornado: Facebook’s Real-Time Web Framework for Python. 11. September 2009, archiviert vom Original (nicht mehr online verfügbar) am 23. Dezember 2009; abgerufen am 22. Oktober 2013 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/developers.facebook.com
  9. tornadoweb.org