【问题标题】:Designing backend software for multiplayer cross platform app为多人跨平台应用程序设计后端软件
【发布时间】:2013-01-13 13:40:54
【问题描述】:

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

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

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

将在数据集上完成其他计算,但那将是客户端,服务器应该只需要处理用户位置(和用户名)的推送和拉取。

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

我正在考虑使用 django 构建一个 API,并将所有数据存储在程序本身中,而不是使用数据库,因为这应该更快,而且我认为没有必要存储数据,因为它寿命这么短。

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

【问题讨论】:

    标签: django api backend


    【解决方案1】:

    虽然一开始性能甚至可能不是问题,但一旦达到一定的负载,您可以做一些事情:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多