2009-09-10 4 views

Antwort

13

Es sieht so aus, als wäre es ein Web-Server, der für hohe Parallelität und hohe Skalierbarkeit optimiert ist, aber für kleinere Nutzlasten ausgelegt ist.

Es wurde entwickelt, um 10.000 gleichzeitige Benutzer gut zu unterstützen.

Das Framework unterscheidet sich von den meisten Mainstream-Web-Server-Frameworks (und meisten Python-Frameworks sicher) weil es nicht blockierend und recht schnell. Weil es non-blocking ist und epoll verwendet, kann es Tausende von simultanen stehenden Verbindungen handhaben, was bedeutet, dass es ideal für Echtzeit-Webdienste ist. Wir bauten den Webserver speziell , um FriendFeed Realtime Funktionen zu behandeln - jeder aktive Benutzer von FriendFeed unterhält eine offene Verbindung zu den FriendFeed-Servern. (Weitere Informationen zur Skalierung Server Tausende von Kunden zu unterstützen, finden Sie unter Das C10K Problem.)

Es auf einem LMP Stapel laufen wird, aber es tritt an die Stelle von Apache.

Siehe das C10K Problem.

0

Es hat 'database' module mit blockierenden Abfragen. Vielleicht führen sie mehrere Instanzen dieses Servers aus, um Blockierungsprobleme zu minimieren, und werden möglicherweise nicht für den gesamten Friendfeed verwendet, sondern nur in einigen Bereichen des Echtzeitverhaltens (ich habe gehört, dass HTTP-Verbindungen offen bleiben, um nach Updates zu suchen und Threading-Verhalten) schlecht für das).

Ich glaube nicht, dass es als Allzweck-Framework für alle Web-Anwendungen verwendbar ist.

0

Tornado ist ein einfacher, schneller Python-Webserver und ein Micro-Web-Framework. Es bietet den grundlegenden Rahmen für das Schreiben einer dynamischen Website. Es ist sehr einfach zu erlernen und zu erweitern, um spezielle Anforderungen einer anspruchsvollen Webanwendung zu erfüllen, da es Ihnen nicht im Weg steht. Der beste Teil bei der Verwendung von Tornado ist, dass es keine Threads pro Anfrage erstellt, daher skaliert es sehr gut für eine große Anzahl von Anfragen. Ich benutze es für eines meiner Projekte und liebe es.