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

2020-11-02 02:30:55 +08:00
 ThanksSirAlex

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

5527 次点击
所在节点    程序员
32 条回复
DoctorCat
2020-11-02 03:27:41 +08:00
这个问题太大了,因为涉及到很多架构设计细节。我想核心系统大体上可以拆解为:
1. LBS 服务架构实现
2. 消息推送服务架构实现

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

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

偏激 piānjī

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

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

假设你说的 100 万辆车同时在路上跑,司机和乘客这样就 200 万推送了吧?还不包括别的比如说行程共享这种额外的情况?这种情况我想学习下怎么处理,希望大佬方便的话能详细说说
lsylsy2
2020-11-02 10:35:59 +08:00
@rapperx2
@zocome
一对一的话给车随机分个 id 然后负载均衡完事
如果是打车之前“显示当前区域车”的界面的话可以是假的实时,然后灯塔算法完事
ThanksSirAlex
2020-11-02 10:37:19 +08:00
@DoctorCat 有个问题,既然是实时位置,那么不是应该只需要存储当前的位置即可?不用存下历史位置?
rebounce
2020-11-02 10:49:19 +08:00
@DoctorCat 我查了下是 2011 年的 topic 了。
DoctorCat
2020-11-02 12:57:40 +08:00
@ThanksSirAlex 我的理解是产品需求需要在移动端的实时 map 组件中显示真实路径,所以 GPS 位置这种时序数据肯定是要存的
DoctorCat
2020-11-02 12:58:10 +08:00
@rebounce 对,所以说 Uber 的早期嘛
kop1989
2020-11-02 13:12:21 +08:00
据我观察,滴滴这种 app,地理位置推送的压力并没有很多人现象中的大(或者说是采样密度并没那么高)。
1 、gps 是有速度信息的。
2 、用户手机里的小车动画明显是根据上一个采集+速度推算出来的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/720839

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX