• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ThanksSirAlex
V2EX  ›  程序员

滴滴这样的实时位置推送是怎么实现的

  •  
  •   ThanksSirAlex · Nov 2, 2020 via iPhone · 6268 views
    This topic created in 2192 days ago, the information mentioned may be changed or developed.

    想要了解一下,有没有什么开源的解决方案可以参考一下的。

    32 replies  •  2020-12-22 19:40:12 +08:00
    DoctorCat
    DoctorCat
    Nov 2, 2020❤️2
    1
    这个问题太大了,因为涉及到很多架构设计细节。我想核心系统大体上可以拆解为:
    1. LBS 服务架构实现
    2. 消息推送服务架构实现

    Uber 早期的架构是基于 MongoDB 做位置日志存储,通过一套 nodejs 自研的消息总线分发到移动端推送系统
    参考《 Distributed Web Architectures: Curtis Chambers, Uber 》
    opengps
    opengps
    Nov 2, 2020 via Android
    3
    网页版用轮训即可,app 可以用 socket
    k9982874
    k9982874
    Nov 2, 2020 via iPhone
    4
    服务器分区即可,位置服务器放在当地城市,其实要处理的推送没多少,毕竟在路上跑的车也就那么几辆。
    zocome
    zocome
    Nov 2, 2020
    5
    @k9982874 #4 没多少?就那么几辆?认真的?
    k9982874
    k9982874
    Nov 2, 2020
    6
    @zocome #5 认真的 就算一个城市有 100 万辆滴滴在路上跑,通过合理规划也能覆盖、处理。所以杠精你好,杠精👋🏻
    MIUIOS
    MIUIOS
    Nov 2, 2020
    7
    @k9982874 兄弟有点偏激了
    CEBBCAT
    CEBBCAT
    Nov 2, 2020 via Android
    8
    不好意思啊,歪下楼

    https://www.zdic.net/hans/偏激

    偏激 piānjī

    [extreme] 思想、主张、言论等过火,有失平允

    偏激 piān jī ㄆㄧㄢ ㄐㄧ
    意见、主张、行为等方面过于极端。
    如:「他对任何事物都存有偏激的看法。」
    近过火
    k9982874
    k9982874
    Nov 2, 2020
    9
    @totoro52 #6 嗯 我压根就不应该打理他
    rapperx2
    rapperx2
    Nov 2, 2020
    10
    @k9982874 求大佬解答怎么 合理规划
    atonku
    atonku
    Nov 2, 2020
    11
    @rapperx2 合理规划,就是多掏钱
    l0wkey
    l0wkey
    Nov 2, 2020 via iPhone
    12
    MQTT 了解一下
    zocome
    zocome
    Nov 2, 2020
    13
    @k9982874 #6 非杠,真心请教如何实现,想学习下这方面知识
    zocome
    zocome
    Nov 2, 2020
    14
    @k9982874 #6 不知道大佬你说的没多少数量是指多少?我个人的理解,这种情况下超过 10000 辆车在线以及乘客、司机超过 20000 个设备在线推送设备就不能说没多少了,就我自己接触的来说,超过 10000 并发的现实中基本上没见过几家,不知道你说的 100 万辆车这种情况下是怎么做到你说的没多少推送?

    假设你说的 100 万辆车同时在路上跑,司机和乘客这样就 200 万推送了吧?还不包括别的比如说行程共享这种额外的情况?这种情况我想学习下怎么处理,希望大佬方便的话能详细说说
    lsylsy2
    lsylsy2
    Nov 2, 2020
    15
    @rapperx2
    @zocome
    一对一的话给车随机分个 id 然后负载均衡完事
    如果是打车之前“显示当前区域车”的界面的话可以是假的实时,然后灯塔算法完事
    ThanksSirAlex
    ThanksSirAlex
    OP
    Nov 2, 2020
    16
    @DoctorCat 有个问题,既然是实时位置,那么不是应该只需要存储当前的位置即可?不用存下历史位置?
    rebounce
    rebounce
    Nov 2, 2020
    17
    @DoctorCat 我查了下是 2011 年的 topic 了。
    DoctorCat
    DoctorCat
    Nov 2, 2020
    18
    @ThanksSirAlex 我的理解是产品需求需要在移动端的实时 map 组件中显示真实路径,所以 GPS 位置这种时序数据肯定是要存的
    DoctorCat
    DoctorCat
    Nov 2, 2020
    19
    @rebounce 对,所以说 Uber 的早期嘛
    kop1989
    kop1989
    Nov 2, 2020
    20
    据我观察,滴滴这种 app,地理位置推送的压力并没有很多人现象中的大(或者说是采样密度并没那么高)。
    1 、gps 是有速度信息的。
    2 、用户手机里的小车动画明显是根据上一个采集+速度推算出来的。
    hanbing135
    hanbing135
    Nov 2, 2020 via Android
    21
    哪有实时位置 感觉都是滴滴自己算法画上去的 遇到好多次车的轨迹跟车的实际位置不一致了 感觉就是过段时间采集一下真实位置 其它时间都是算法瞎算的
    garlics
    garlics
    Nov 2, 2020
    22
    突然想到这张图<img src="https://s1.ax1x.com/2020/11/02/BBbHlF.gif" />
    takemeaway
    takemeaway
    Nov 2, 2020
    23
    笑死,一群没有实践过的人在这里高谈阔论。
    1 楼猜的对了点。 实际上实时位置推送就是 GPS+消息推送,做过位置监控的都知道。
    之前我们就做过间谍软件,一种是在车上放带电池的物联网设备,可监控车辆位置,一种是间谍 APP,后台监听,手机位置实时查看。
    滴滴的难点在于信息多,还有路径规划麻烦。
    你自己使用不需要什么解决方案,直接获取 GPS 信息,socket 推到服务器就行了。服务器再实时推给需要展示的用户。
    kop1989
    kop1989
    Nov 2, 2020
    24
    @takemeaway #23 哟,这个号放出来了?
    takemeaway
    takemeaway
    Nov 2, 2020
    25
    @kop1989 不好意思,我只是忙一段时间没上而已。 你这水平不用瞎回答了
    kop1989
    kop1989
    Nov 2, 2020❤️2
    26
    @takemeaway #25 非要拿出实锤么😂
    MinQ
    MinQ
    Nov 2, 2020
    27
    我总觉得难道不应该是手机定时上报位置,推送到服务器,服务器存储到 Redis 吗
    美团 16 年存储快递员位置的方案
    https://www.slideshare.net/meituan/12lbs
    ThanksSirAlex
    ThanksSirAlex
    OP
    Nov 2, 2020
    28
    @MinQ 用户侧的客户端轮训拉取位置吗
    MinQ
    MinQ
    Nov 2, 2020
    29
    @ThanksSirAlex 对啊,用户的 app 轮询上传位置就好了
    MinQ
    MinQ
    Nov 2, 2020
    30
    @ThanksSirAlex 司机的 app 也是用户 app 啊
    vcode
    vcode
    Nov 5, 2020
    31
    算法画的轨迹,不信你去问滴滴
    TypeError
    TypeError
    Dec 22, 2020
    32
    https://eng.uber.com/real-time-push-platform/
    巧了,刚看到 uber 的文章
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5358 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 06:33 · PVG 14:33 · LAX 22:33 · JFK 01:33
    ♥ Do have faith in what you're doing.