ist playframework wirklich asynchron?

8

Beste Antwort ist im Kommentarbereich (also kann ich ihnen keine Punkte für die Antwort geben :().

Ich habe mich gefragt, ob playframework auf diese Weise asynchron ist (was wirklich asynchron oder komplett asynchron wäre). Ja, Play ist asynchron am Frontend und erlaubt 1000 Clients auf 100 Threads, aber im Backend gibt es keine Möglichkeit dies zu erreichen, oder ich liege falsch (was ich hoffe) .....

%Vor%

Beachten Sie, dass dies ein extrem asynchrones Verhalten wäre. Beachten Sie außerdem, dass Sie, wenn Sie ein Backend-System haben, das Sekunden braucht, um auf jede Anforderung zu reagieren, jetzt ungefähr 100 weniger Maschinen benötigen, um die gleiche Anzahl an Benutzern zu bedienen. In normalen Kontexten, in denen das Backend-System sehr schnell ist, würde es natürlich keinen Leistungsunterschied geben.

danke, Dekan

    
Dean Hiller 04.02.2012, 15:02
quelle

3 Antworten

6

Sehen Sie sich Play 2.0 an. Es ist immer noch eine Beta-Version, aber es hat einige nette asynchrone Sachen .

Werfen Sie für die erste Wiedergabe einen Blick auf die Dokumentationsseite , die die asynchronen Funktionen von Play umfasst. und das Akka Modul spielen (und während du dabei bist, auch Akka selbst :)).

    
Carsten 04.02.2012, 17:53
quelle
1

play 2 ist asynchron von Grund auf asynchron und verwendet akka und netty. Sie können die Wiedergabe sowohl für Ihr Frontend als auch für Ihre Dienste verwenden (z. B .: als Ruhezustand). Außerdem ist das Spiel zustandslos, daher ist es sehr einfach, es durch Hinzufügen von Servern zu skalieren.

    
sirmak 04.02.2012 19:40
quelle
0

Hier einige Details hinzufügen. Es sieht so aus, als ob Play etwas erfundenes Promise-Objekt erfunden hat, das Future erweitert und eine Möglichkeit bietet, einen Listener hinzuzufügen. Ich nehme an, dass play direkt nach dem Senden der Anfrage einen Listener zum Promise-Objekt hinzufügt und wenn der Antwort-Thread Promise.setResponse (xxx ), überprüft diese Methode, ob ein Listener bereits hinzugefügt wurde, und wenn dies der Fall ist, wird der Listener aufgerufen, um zu sagen, dass die Antwort empfangen wird, und Play wird sie dann in seiner Warteschlange für die Threads ablegen.

Wenn jedoch Ihre Antwort schlägt spielen Rahmen Hinzufügen ihres Zuhörers, wenn spielen ruft addListener, ich bin "angenommen" es hat Code zu diesem Checks war Antwort schon auf Objekt eingestellt und wenn ja, rufen Sie den Hörer mit playframeworks bestehenden Thread, der es fallen lässt in der playframework Warteschlange (oder zumindest hoffe ich, dass das der Fall ist).

Ich weiß nicht, ob Promise zurück auf 1.2.x portiert wurde, aber da das Beispiel eine Future verwendete, die play abspielen müsste, um zu sehen wann die Antwort zurückkommt ... ick .... ich immer Ich fragte mich, warum es keinen addResponseListener auf diesen Future-Objekten gab ... das mochte das nie.

    
Dean Hiller 12.02.2012 22:53
quelle

Tags und Links