为多人跨平台应用设计后端软件

时间:2013-01-29 20:58:49

标签: django api backend

我目前正处于第一个应用程序的初始设计阶段。

在我的应用中,将有包含1-5个用户的单个会话。

我需要能够跟踪每个用户的GPS位置,并能够将它们推送给每个用户。每个用户都将拥有会话中每个其他用户的最近报告位置。

将对数据集进行其他计算,但这将是客户端,服务器应该只需要处理用户位置(和用户名)的推送和拉动。

我预测由于应用程序的性质,90%的会话不应超过2小时,服务器结束会话的时间可能超过24-48小时(一旦对应用进行真实测试)开始我会更好地了解会话应该持续多长时间。)

我正在考虑使用django来构建API,并将所有数据存储在程序本身而不是使用数据库,因为这应该更快,我认为没有必要存储数据,因为它生命如此短暂。

这是一个很好的起点吗?有什么我应该考虑或考虑的吗?我对设计后端软件完全不熟悉。

1 个答案:

答案 0 :(得分:1)

虽然性能在开始时可能不是一个问题,但是一旦你达到一定的负荷,你可以做一些事情:

  • 将所有会话数据保存在一个模型中,即使您正在对数据库进行非规范化(将冗余信息放入数据库)。这样你只需要对数据库进行一次读取而不需要昂贵的JOIN
  • 使用Django缓存框架(https://docs.djangoproject.com/en/dev/topics/cache/)来缓存视图,因此对同一数据的多次读取不必访问数据库
  • 在开始优化之前,请对代码进行概要分析,以了解性能瓶颈的确切位置。有时你会惊讶哪些操作很昂贵,哪些操作不是。