实时数据服务器架构

问题描述:

我想你的建议在以下Python项目的最佳设计方案。
我建立了被分为2个部分的web服务系统:实时数据服务器架构

  1. 这部分由第三方API抓取实时数据,并把数据在DB。
  2. 这部分公开一个JSON API来从在1中提到的DB)访问数据。

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

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

谢谢!

+0

因为我没有用的SQLAlchemy等任何经验,我只是对数据的大小问题发表评论:你可以使用某种分片取决于datacolection的时间或使用轮询算法。详情请参见[http://en.wikipedia.org/wiki/RRDtool](http://en.wikipedia.org/wiki/RRDtool)。 – 2012-02-07 20:01:48

我会说,在同一machien运行两下手,看看性能如何。如果你不需要,为什么还要在第二台机器上花钱?

至于“处理数据的不断增长量” -DO你需要保持周围的旧数据?如果没有,你的第二个任务可以简单地删除旧数据。如果所有记录都有适当的时间标记,则不必担心两个任务之间的竞争状况。

+0

感谢您的评论!实际上,我确实需要保留历史数据。你的想法会是什么? – user1094786 2012-02-09 05:53:57