2010-01-11 17 views
5

Diese Frage bezieht sich auf eine ältere Frage: MySQL tracking system. Kurz gesagt: Ich muss ein Tracking-System implementieren, das hohe Belastungen mit Python hat. Für den Teil der Datenbank habe ich mich für mongoDB entschieden (was sich für das richtige Tool für diesen Job anhört). Die Entwicklungssprache wird Python sein.Tracking-System und Echtzeit-Statistik-Analyse in Python

Ich dachte daran, mehrere Instanzen einer CherryPy-Anwendung hinter Nginx zu verwenden. Der Grund dafür ist, dass ich nicht alle wsgi-Teile selbst behandeln möchte, aber andererseits brauche ich kein ausgewachsenes Web-Framework, da die App einfach ist und kein ORM benötigt wird.

Meine Fragen sind:

  • Sollte ich den CherryPy builtin-Server verwenden oder sollte ich Apache mit modwsgi (oder einen anderen Server insgesamt)?

  • Klingt das wie ein vernünftiger Ansatz (nginx, mongoDB)? Wenn nicht, was würdest du empfehlen?

Vielen Dank im Voraus.

+0

+1 für eine gute Frage. MongDB sieht wie eine sehr gute DB für hohe Lasten aus, aber haben Sie auch eine DB mit GIS-Unterstützung in Erwägung gezogen? – Mawg

Antwort

1

Klingt wie MongoDB eine gute Passform für diese sein wird - schnelles Updates mit erweiterten Operatoren und M/R für die Chargen offline wird bearbeitet. Ich denke CherryPy hinter Nginx sollte auch gut funktionieren. Wenn du auf die mod_wsgi Route gehst, pass einfach auf this issue auf.

+0

Danke für den Tipp :). – Alex

+0

Ich würde argumentieren, dass die Mongo-Dokumentation das Problem mit mod_wsgi falsch beschreibt. Es heißt "Wenn PyMongo mit aktivierter C-Erweiterung ausgeführt wird, können merkwürdige Fehler beim Kodieren auftreten, da mod_wsgi das Modul mit mehreren Unterinterpretern neu lädt." Jedes Problem, das Sie sehen, liegt nicht daran, dass mod_wsgi das Modul neu lädt, sondern weil die Mongo C-Erweiterung nicht korrekt geschrieben wurde, um gleichzeitig in mehreren Unterinterpretern zu arbeiten. Dies geschieht für jedes Multi-Interpreter-System, nicht nur für mod_wsgi. Mongo konnte die C-Erweiterung reparieren. –

+0

Graham - die Dokumente sind offen, also zögern Sie nicht, Änderungen vorzunehmen, die Ihrer Meinung nach darin liegen sollten. Sie haben Recht, wir könnten die C-Erweiterung ändern, um diesen Fall zu bearbeiten, obwohl ich mir Sorgen über die Auswirkungen auf die Performance machen würde. Wenn Sie daran interessiert sind, weiter zu diskutieren, nehmen wir es auf http://jira.mongodb.org - Danke für die Eingabe! – mdirolf

3

Haben Sie Graphit ausgecheckt? Es klingt genau nach der Art von Dingen, die Sie brauchen (auf Ihre andere Frage) und wurde vom Orbitz-Team für die Anwendungs- und Serverüberwachung entwickelt. Es ist extrem robust und einfach für solche Dinge zu verwenden.

+0

Es sieht gut aus. Ich werde darüber nachdenken (und ich werde die anderen Teammitglieder bitten, darüber zu schauen). Hoffentlich wird dies den Job machen. Vielen Dank. – Alex