像车辆定位,儿童手表定位之类应用的数据是如何存储和查询的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
bbsfoo
V2EX    程序员

像车辆定位,儿童手表定位之类应用的数据是如何存储和查询的?

  •  
  •   bbsfoo 2022-10-15 12:26:16 +08:00 2183 次点击
    这是一个创建于 1096 天前的主题,其中的信息可能已经有所发展或是发生改变。

    应用特点和需求: 1 、终端很多 2 、每个终端每秒都可会产生定位数据 3 、服务器端怎样接收如此多的数据?是 http 还是 socket 私有的协议? 4 、怎样快速查询出某个设备的当前定位? 5 、怎样快速查询出历史定位数据?

    一般是怎样的架构啊??

    5 条回复    2022-10-15 18:19:16 +08:00
    Jet
        1
    Jet  
       2022-10-15 13:24:06 +08:00
    IoT 领域有很成熟的解决方案了,比如 MQTT + 时序数据库。
    oyasumi
        2
    oyasumi  
       2022-10-15 14:08:34 +08:00 via iPad
    dynamodb
    wangbin526
        3
    wangbin526  
       2022-10-15 17:50:18 +08:00
    肯定是 http 快啊,用 fastapi 做后台最多也就上百行代码搞定,性能也不差,频率到每秒这么高的话用 redis 做个缓存,缓存几十秒再一起插入,还不行就用 go 吧
    存储量小的随便,量大的话找个时序数据库,比如国产 TDengine ,每设备一个表查询很简单的
    如果需要终端随时能快速响应的话只能上 MQTT 了,Docker 部署个国产的 EMQX 也很方便,但终端还是另外用 http 发定位性能会好很多,不然开源的 EMQX 还得自己写 Hook 存数据库
    a33291
        4
    a33291  
       2022-10-15 17:59:54 +08:00
    说一下我们这边目前的实现
    1. mysql 数据库,尚未引入时序数据库.但我们主要的服务方式是离线私有化部署
    2. 定位设备和定制手机+定制 app 联动,定位设备采用基于 tcp 的私有协议交互(未使用 mqtt),手机端使用私有 tcp 协议+http 协议和平台交互
    3. 当设备上报位置数据后,根据经纬度(坐标系转换)反查地址信息等完善基础信息(这块相对复杂,定位有 gps 基站 wifi 等),然后存入历史表并更新对应设备的最新位置
    4. 历史表直接查(当前甚至未做时间窗口优化),有必要的索引,数据量一般在千万级

    之前是 CS 模式,已重写为 BS.至于架构,各个系统的需求不一样,参与角色也不一样,不好说.
    weak
        5
    weak  
       2022-10-15 18:19:16 +08:00 via iPhone
    MQTT 一楼正解
    关于     帮助文档     自助推广系统   博客     API     FAQ     Solana     2647 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 15:20 PVG 23:20 LAX 08:20 JFK 11:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86