【问题标题】:Tracking system and real time stats analysis in PythonPython中的跟踪系统和实时统计分析
【发布时间】:2011-01-03 20:56:31
【问题描述】:

这个问题与一个较早的问题有关:MySQL tracking system。简而言之:我必须使用 Python 实现一个具有高负载的跟踪系统。对于数据库部分,我选择了 mongoDB(这听起来像是适合这项工作的工具)。开发语言将是 Python。

我正在考虑在 nginx 后面使用几个 CherryPy 应用程序实例。这背后的原因是我不想自己处理所有 wsgi 部分,但另一方面,我不需要一个完整的 Web 框架,因为应用程序很简单并且不需要 ORM。

我的问题是:

  • 我应该使用 CherryPy 内置服务器还是应该使用带有 modwsgi 的 Apache(或完全使用其他服务器)?

  • 这听起来是不是一种合理的方法(nginx、mongoDB)?如果没有,你会推荐什么?

提前谢谢你。

【问题讨论】:

  • +1 提出一个好问题。 MongDB 看起来是一个非常适合高负载的数据库,但您是否也考虑过支持 GIS 的数据库?

标签: python nginx mongodb mod-wsgi cherrypy


【解决方案1】:

您检查过 Graphite 吗?这听起来正是您需要的东西(查看您的其他问题),并且是 Orbitz 团队为应用程序和服务器监控而设计的。对于这类事情,它非常强大且易于使用。

【讨论】:

  • 看起来不错。我会检查一下(我会请其他团队成员检查一下)。希望这能完成这项工作。谢谢。
【解决方案2】:

听起来像 MongoDB 将非常适合 - 使用高级运算符进行快速更新,以及用于批量离线处理的 M/R。我认为 Nginx 背后的 CherryPy 也应该很好用。如果你走 mod_wsgi 路线,请注意this issue

【讨论】:

  • 我认为 Mongo 文档错误地描述了使用 mod_wsgi 的问题。它说“在启用 C 扩展的情况下运行 PyMongo 时,由于 mod_wsgi 使用多个子解释器处理模块重新加载的方式,编码时可能会看到奇怪的失败。”您看到的任何问题都不是因为 mod_wsgi 如何处理模块重新加载,而是因为 Mongo C 扩展没有被正确编写以同时在多个子解释器中工作。这将发生在任何多解释器系统上,而不仅仅是 mod_wsgi。 Mongo 可以修复 C 扩展。
  • Graham - 文档是开放的,因此请随时 fork 并贡献您认为应该在其中的更改。没错,我们可以更改 C 扩展名来处理这种情况,尽管我担心任何“修复”对性能的影响。如果您有兴趣进一步讨论,请发送至jira.mongodb.org - 感谢您的意见!
猜你喜欢
  • 2019-01-04
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 2011-04-23
  • 2011-04-20
  • 1970-01-01
  • 1970-01-01
  • 2014-05-07
相关资源
最近更新 更多