2010-01-11 24 views
5

Esta pregunta se relaciona con una pregunta anterior: MySQL tracking system. En resumen: tengo que implementar un sistema de seguimiento que tendrá altas cargas usando Python. Para la parte de la base de datos me he decidido por mongoDB (que suena como la herramienta adecuada para este trabajo). El lenguaje de desarrollo será Python.Sistema de seguimiento y análisis de estadísticas en tiempo real en Python

Estaba pensando en usar varias instancias de una aplicación CherryPy detrás de nginx. El razonamiento detrás de esto es que no quiero manejar toda la parte de wsgi, pero, por otro lado, no necesito un framework web completo ya que la aplicación será simple y no hay necesidad de ORM.

Mis preguntas son:

  • ¿Debo utilizar el servidor incorporado CherryPy o debería utilizar Apache con modwsgi (u otro servidor en total)?

  • ¿Esto suena como un enfoque razonable (nginx, mongoDB)? Si no, ¿qué recomendarías?

Gracias de antemano.

+0

+1 para una buena pregunta. MongDB parece una muy buena base de datos para cargas elevadas, pero ¿también considera un DB con soporte GIS? – Mawg

Respuesta

1

Suena como MongoDB será un buen ajuste para esto - actualizaciones rápidas con operadores avanzados, y M/R de lotes fuera de línea tratamiento. Creo que CherryPy detrás de Nginx debería funcionar bien también. Si vas por la ruta mod_wsgi solo ten cuidado con this issue.

+0

Gracias por el consejo :). – Alex

+0

Argumentaría que la documentación de Mongo está describiendo erróneamente el problema con el uso de mod_wsgi. Dice 'Al ejecutar PyMongo con la extensión C habilitada, es posible ver extraños errores al codificar debido a la forma en que mod_wsgi maneja la recarga de módulos con múltiples subinterpretadores'. Cualquier problema que vea no se debe a la forma en que mod_wsgi maneja la recarga de módulos, sino porque la extensión de Mongo C no se ha escrito correctamente para trabajar en múltiples subinterpretadores al mismo tiempo. Esto ocurrirá para cualquier sistema de múltiples intérpretes, no solo mod_wsgi. Mongo podría arreglar la extensión C. –

+0

Graham - los documentos están abiertos, así que siéntete libre de bifurcar y contribuir con los cambios que creas que deberían estar ahí. Tiene razón en que podríamos cambiar la extensión C para manejar ese caso, aunque me preocuparía el impacto en el rendimiento de cualquier "solución". Si está interesado en discutir más, vamos a llevarlo a http://jira.mongodb.org. ¡Gracias por la contribución! – mdirolf

3

¿Has echado un vistazo a Graphite? Suena exactamente el tipo de cosa que necesita (mirando su otra pregunta) y fue diseñado para la aplicación y el monitoreo del servidor por parte del equipo de Orbitz. Es extremadamente robusto y fácil de usar para este tipo de cosas.

+0

Se ve genial. Lo revisaré (y le pediré a los otros miembros del equipo que lo revisen). Espero que esto haga el trabajo. Gracias. – Alex

Cuestiones relacionadas