【问题标题】:How to do Realtime/fast processing of GPS data in web application?如何在 Web 应用程序中实时/快速处理 GPS 数据?
【发布时间】:2014-03-29 01:44:23
【问题描述】:

我正在编写一个网络应用程序,用于在来自 GPS 设备的 Google 地图上绘制实时 GPS 坐标,用于车队管理。

由于从 GPS 设备到数据库的网络应用程序的数据流非常快,它变得非常繁重,并且每 5 秒查询一次数据库(通过运行网站的网络浏览器的 AJAX),它变得更加繁重。

保持实时更新变得非常困难,实际更新与网站上的可见性之间会产生 30 秒到 60 秒的延迟。

我在 CentOS 6.4 64 位上使用 Django + Apache + MySQL。

任何关于我应该向哪个方向移动以使数据的处理/可见性更实时的建议都会有所帮助。

【问题讨论】:

  • HTML 5 WebSockets 怎么样?
  • @Socialz 更改客户端怎么会在服务器端进行任何性能升级?
  • 我想推荐你阅读this关于这个主题的精彩话题。

标签: mysql django web-applications gps real-time


【解决方案1】:

我建议你使用像 MongoDB 这样的 NoSql 数据库。它将真正帮助您实现实时应用程序性能。

看看Django-With-MonoDB

如果可能,尝试将默认 python 解释器替换为PyPy

我认为这两个足以给你最好的表现。 :)

了解Django-using-PyPy

对于前端,您应该使用KnockoutJSAngularJS

【讨论】:

  • PyPy 将如何发挥作用?请告诉我如何在 nosql 数据库中建立关系?
  • PyPy 使用 JIT 如果您阅读了上述链接而不是了解它(只需使用 django speed.pypy.org/timeline/… 查看基准)并且在 NoSQL 中,您不会基于数据实体之间的关系。您可以根据将针对它运行的查询来设计数据库。
  • 我在我的回答中添加了更多信息并对您的问题投了赞成票。谢谢。
【解决方案2】:

一些提示:

  • 避免使用 xml,尤其是基于 DOM 的 xml 解析器(这会将数据放大 100 倍)。 (没有时间的经纬度坐标,需要8个字节,不多)
  • 支持坐标的二进制表示,并手动解析它们,而不是使用生成缓慢的解析代码,可能使用反射来解析。
  • 尽量减少数据库的使用,尤其是关系数据库。 提高客户发送的时间间隔:例如每 20 分钟 每 5 次。
  • 如果您使用数据库,请尽量减少事务,尝试进行所有处理 一笔交易。

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 2020-07-20
    • 2021-08-09
    • 1970-01-01
    • 2011-09-30
    • 2022-01-01
    • 2014-02-19
    • 1970-01-01
    • 2020-04-07
    相关资源
    最近更新 更多