Was würden Sie für eine stark frequentierte ajax intensive Website empfehlen?

7

Für eine Website wie Reddit mit vielen Up / Down-Abstimmungen und vielen Kommentaren pro Thema, womit soll ich gehen?

Lighttpd / PHP oder Lighttpd / CherryPy / Genshi / SQLAlchemy?

und für die Datenbank, was wäre besser / am schnellsten MySQL (4.1 oder 5?) oder PostgreSQL?

    
daniels 15.10.2008, 13:57
quelle

5 Antworten

8

Ich kann nicht mit der MySQL / PostgreSQL-Frage sprechen, da ich wenig Erfahrung mit Postgres habe, aber mein Masters-Forschungsprojekt handelte von leistungsstarken Websites mit CherryPy, und ich glaube nicht, dass Sie enttäuscht sein werden, wenn Sie es verwenden CherryPy für Ihre Website. Es kann leicht auf Tausende von gleichzeitigen Benutzern auf Standardhardware skaliert werden.

Natürlich könnte das gleiche für PHP gesagt werden, und ich kenne keine vernünftigen Benchmarks, die PHP und CherryPy Leistung vergleichen. Aber wenn Sie sich fragen, ob CherryPy eine hoch frequentierte Site mit einer großen Anzahl von Anfragen pro Sekunde bewältigen kann, ist die Antwort definitiv ja.

    
Eli Courtwright 15.10.2008, 14:11
quelle
8

Das ideale Setup wäre das :

Kurz gesagt, nginx ist ein schneller und leichter Webserver / Front-Proxy mit einem einzigartigen Modul, mit dem Daten direkt aus < memcached RAM-Speicher, ohne die Festplatte oder eine dynamische Webanwendung zu treffen. Wenn die URL der Anfrage nicht bereits zwischengespeichert wurde (oder wenn sie abgelaufen ist), wird die Anfrage natürlich wie gewohnt an die Webanwendung weitergeleitet. Der geniale Teil ist, dass, wenn die Webapp die Antwort erzeugt hat, eine Kopie davon zu memcached geht und bereit ist, wiederverwendet zu werden.

All dies ist nicht nur auf Webseiten, sondern auch auf AJAX-Abfragen / -Antworten perfekt anwendbar.

in dem Artikel sind die "Zurück" -Server http, und sprechen speziell über Mischling. Es wäre noch besser, wenn der Rücken FastCGI und andere (schneller?) Rahmen wäre; aber es ist viel weniger kritisch, da das Nginx / Memcached-Team den größten Teil der Last absorbiert.

Beachten Sie, dass, wenn Ihr URL-Schema für den AJAX-Verkehr gut designed ist (REST ist am besten, IMHO), Sie den größten Teil der DB direkt in memcached setzen können, und jeder POST (der an die App übergeben wird) Cache.

    
Javier 15.10.2008 14:26
quelle
3

In der DB-Frage würde ich sagen, PostgreSQL skaliert besser und hat eine bessere Datenintegrität als MySQL. Für eine kleine Site könnte MySQL schneller sein, aber von dem, was ich gehört habe, verlangsamt es sich beträchtlich, wenn die Größe der Datenbank wächst. ( Hinweis: Ich habe noch nie MySQL für eine große Datenbank verwendet, daher sollten Sie wahrscheinlich eine zweite Meinung über seine Skalierbarkeit erhalten. ) PostgreSQL skaliert jedoch definitiv gut und wäre eine gute Wahl für einen hohen Datenverkehr Website.

    
Bruce Alderman 15.10.2008 16:31
quelle
2

Ich brauche mehr Daten. Jeff hatte ein paar Artikel über die gleichen Probleme und die Antwort war zu warten, bis Sie ein Leistungsproblem haben.

um zu beginnen mit - wer hostet und was haben sie zur Verfügung? Was ist dein Talent Talent Fähigkeiten? Werden Sie eine externe Firma einstellen? Was empfehlen sie? brandneues Projekt mit einem Team, das bereit ist, ein neues Framework zu lernen?

Die zweite Sache ist, ein paar Mockups zu machen - wie wird die Schnittstelle funktionieren? Welche Daten muss geladen und persistiert werden? Die Idee ist, den Verkehr zwischen dem Web und Db-Seite nach unten zu halten. z.B. keine gesprächigen Seiten mit vielen Fragen. usw.

Sobald Sie eine bessere Vorstellung von den Datenanforderungen und dem Datenfluss haben, arbeiten Sie am Datenbankentwurf. Es gibt viele Regeln zu folgen, aber eine der besseren ist, Normalisierungsregeln zu folgen (ja, ich bin ein DB-Typ warum?)

Jetzt haben Sie ein paar Seiten aufgebaut - führen Sie Ihre Tests durch. Hast du ein Problem? Ja, schau jetzt was es ist. Page Serving oder db zieht? Messen Sie dann einen Handlungsablauf.

    
jim 15.10.2008 14:11
quelle
2

Ich würde mit nginx + php + xcache + postgresql

gehen     
ping 28.10.2008 20:54
quelle