Tornado (Webserver)
Tornado
| |
---|---|
Basisdaten
| |
Entwickler | Facebook, Bret Taylor |
Erscheinungsjahr | 2009 |
Aktuelle Version | 6.4.2[1] (22. November 2024) |
Betriebssystem | plattformunabhängig |
Programmiersprache | 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
[Bearbeiten | Quelltext bearbeiten]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.
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
[Bearbeiten | Quelltext bearbeiten]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:
- Verwaltung von Cookies (mit Möglichkeit diese zu signieren um ihre Authentizität zu überprüfen) und Sessions
- Templatesystem
- Cross-Site-Scripting-Schutz
- Support für Mehrsprachigkeit
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Verwendung in Jupyter Notebooks
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Release 6.4.2. 22. November 2024 (abgerufen am 1. Dezember 2024).
- ↑ Hauptseite des Tornado Projects. Abgerufen am 5. April 2013 (englisch).
- ↑ Facebook Acquires FriendFeed. 10. September 2009, abgerufen am 22. Oktober 2013 (englisch).
- ↑ Liste der OpenSource Projecte von Facebook. Archiviert vom (nicht mehr online verfügbar) am 14. Januar 2013; abgerufen am 5. April 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.
- ↑ Talking about Tornado. 25. September 2009, abgerufen am 22. Oktober 2013 (englisch).
- ↑ Installationshinweis zu Tornado. Abgerufen am 5. April 2013 (englisch).
- ↑ Dory, Michael, Adam Parrish, and Brendan Berg. Introduction to Tornado. O’Reilly Media, 2012.
- ↑ Tornado: Facebook’s Real-Time Web Framework for Python. 11. September 2009, archiviert vom (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.
- ↑ tornadoweb.org