2010-01-11 20 views
5

Questa domanda è correlata a una domanda precedente: MySQL tracking system. In breve: devo implementare un sistema di tracciamento con carichi elevati che utilizza Python. Per la parte del database mi sono basato su mongoDB (che sembra lo strumento giusto per questo lavoro). Il linguaggio di sviluppo sarà Python.Analisi del sistema di tracciamento e delle statistiche in tempo reale in Python

Stavo pensando di utilizzare diverse istanze di un'applicazione CherryPy dietro nginx. Il ragionamento alla base di questo è che non voglio gestire tutte le parti di wsgi da solo, ma d'altra parte non ho bisogno di un framework web in piena regola dato che l'app sarà semplice e non c'è bisogno di ORM.

Le mie domande sono:

  • Devo utilizzare il server integrato CherryPy o dovrei utilizzare Apache con modwsgi (o un altro server del tutto)?

  • Questo suona come un approccio ragionevole (nginx, mongoDB)? Se no, cosa consiglieresti?

Grazie in anticipo.

+0

+1 per una buona domanda. MongDB si presenta come un ottimo DB per carichi elevati, ma hai anche considerato un DB con supporto GIS? – Mawg

risposta

1

Suona come MongoDB sarà una buona misura per questo - aggiornamenti veloci con operatori avanzati, e M/R per linea lotto in lavorazione. Penso che CherryPy dietro Nginx dovrebbe funzionare bene anche. Se segui la rotta mod_wsgi, fai attenzione al numero this issue.

+0

Grazie per il suggerimento :). – Alex

+0

Direi che la documentazione di Mongo non definisce il problema con l'uso di mod_wsgi. Dice "Quando si esegue PyMongo con l'estensione C abilitata, è possibile vedere strani errori durante la codifica a causa del modo in cui mod_wsgi gestisce il ricaricamento del modulo con più interpreti secondari." Qualsiasi problema che si vede non è dovuto al modo in cui mod_wsgi gestisce il ricaricamento del modulo, sarà perché l'estensione Mongo C non è stata scritta correttamente per funzionare in più subinterpreti contemporaneamente. Ciò si verificherà per qualsiasi sistema multi interprete, non solo mod_wsgi. Mongo ha potuto riparare l'estensione C. –

+0

Graham - i documenti sono aperti, quindi sentitevi liberi di dare una mano e di apportare modifiche che pensate dovrebbero essere lì. Hai ragione che potremmo cambiare l'estensione C per gestire quel caso, anche se mi preoccuperei dell'impatto sulle prestazioni di qualsiasi "correzione". Se sei interessato a discuterne ulteriormente, portalo su http://jira.mongodb.org - grazie per l'input! – mdirolf

3

Hai controllato Graphite? Sembra esattamente il tipo di cosa di cui hai bisogno (guardando la tua altra domanda) ed è stato progettato per il monitoraggio dell'applicazione e del server da parte del team di Orbitz. È estremamente robusto e facile da usare per questo genere di cose.

+0

Sembra fantastico. Lo esaminerò (e chiederò agli altri membri del team di esaminarlo). Spero che questo faccia il lavoro. Grazie. – Alex

Problemi correlati