【问题标题】:Realtime data server architecture实时数据服务器架构
【发布时间】:2012-02-07 19:56:24
【问题描述】:

我希望得到您对以下 Python 项目最佳设计方法的建议。
我正在构建一个分为两部分的 Web 服务系统:

  1. 这部分从第 3 方 API 获取实时数据并将数据放入数据库中。
  2. 这部分公开了一个 json API 来访问 1) 中提到的 DB 中的数据。

一些背景信息 - 2) 在 django 上运行,并通过视图方法公开 API。它使用 SQLAlchemy 而不是 django ORM。

我的问题是:
- 考虑到它们都访问同一个 MySQL DB,1) 和 2) 是否应该在同一台机器上运行?
- 1)应该运行什么?我正在考虑只使用也使用 SQLAlchemy 的 Python 脚本运行 cron 作业。这是因为我认为这里不需要整个 Web 框架,尤其是因为它需要超快地工作。这是最好的方法吗?
- 数据大小 - 1) 每 1 分钟获取大约 60,000 个条目并将它们放入数据库中(一个条目包含大约 12 个浮点值和一些日期和整数)。在这里处理不断增长的数据量的最佳方法是什么?你会拆分数据库吗?如果是这样,进入什么?

谢谢!

【问题讨论】:

  • 由于我对 SQLAlchemy 等没有任何经验。我只是对数据大小问题发表评论:您可以根据数据收集的时间使用某种分片或使用循环算法。详情请见http://en.wikipedia.org/wiki/RRDtool

标签: python real-time


【解决方案1】:

我会说,首先在同一台机器上运行这两个,然后看看性能如何。如果不需要,为什么还要花钱购买第二台机器?

至于“处理不断增长的数据量”——您是否需要保留旧数据?如果没有,您的第二个任务可以在完成后简单地删除旧数据。如果所有记录都带有正确的时间戳,则您无需担心两个任务之间的竞争条件。

【讨论】:

  • 感谢您的评论!实际上,不幸的是,我确实需要保留历史数据。您对此有何看法?
猜你喜欢
  • 2012-08-24
  • 2014-09-16
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 2011-10-02
  • 2019-11-11
  • 2020-09-12
  • 1970-01-01
相关资源
最近更新 更多