• 👽
    2022-04-06
    思考题: 我觉得,还需要考虑取消订单后判责与信用分问题,派单优先级问题,司机乘客沟通纪录留档问题。 订单是可以取消的,司机取消或者乘客取消。只要不是正常完成的订单。就需要系统进行判责,并影响整体信用分。并关联到派单优先级。 然后是派单优先级。要考虑被投诉次数,司机接单数量,乘客下单数量,等多维角度,决定订单的优先级。以合理杀熟。 网约车系统是一个法律风险敏感的系统。司机乘客在线沟通纪录必须保存之外。还需要一个语音电话中转的功能,并且留存语音通话记录一段时间备查。然后这里会涉及一个音频文件压缩与存储的设计。

    作者回复: 赞

    
    4
  • My
    2022-04-17
    1、这里不光有距离计算,像现在的dd司机端都线路计算,区域计算,还有顺风车等业务。(单纯的geo的计算是否过于简单?另外,如果像北京这种城市,假如跨区域后的路线,这个时候该怎么计算距离(redis跨key局限)) 2、这里面从架构师来讲应该做到哪一步 才算完事儿,因为单纯的详细设计上并没有真正能落地的事项呢?

    作者回复: 1 派单的距离计算和路线规划是不同的服务完成,派单时只需选择就近的司机。司机跨区的时候将司机放入不同的区的key即可。 2 设计要到工程师可以按照设计完成开发的地步,根据工程师技能水平,设计的细节程度会有很大差别

    
    3
  • peter
    2022-04-04
    请教老师几个问题: Q1:订单数量应该是整数,平均订单数怎么会是小数1.2呢? Q2:TCP长连接: A 司机日活2千万,TCP连接服务器需要多少台?(或者说,通常情况下一台服务器支持多少TCP连接?) B TCP连接有现成的框架吗? C TCP连接的实现,就是用Socket吗?(以Java为例,安卓APP端:new Socket; socket.connect(serverInitAddr); 服务器端:new ServerSocket(port),serverSocket.accept()) Q3:安卓客户端怎么能够获取车头方向? Q4:系统中的zookeeper是用Zookeeper的什么功能?可用什么替换?

    作者回复: 1 5个人下了6个订单~ 2 A linux缺省连接数上限是65535,不修改linux参数的话需要300台。B Netty C 是的 3 手机有指南针功能 4 这里主要用来做TCP连接服务器心跳检测,目前的作用有点鸡肋的,可以去掉的。

    共 2 条评论
    2
  • 风
    2022-05-29
    老师,返回某台tcp连接服务器的IP地址和端口给到司机app客户端,这样暴露服务器IP和端口信息安全吗?如何保证安全?另外司机端app应该也需要登录注册吧,登录注册流程应该也是通过http交互的,那么我看上面的司机app流程图中一启动就创建长链接了,登录流程应该怎么实现?

    作者回复: TCP连接服务器类似负载均衡服务,只提供通信功能,没有业务逻辑,所以安全防护方面可以做的更强大一点。 是的,司机App也需要登录注册,应该通过HTTP和负载均衡服务器完成,图中为了简化省略了这条线。

    
    1
  • HappyHasson
    2022-04-08
    请教两个问题: 1. tcp管理服务集群,什么时候会去redis删除司机映射关系,架构图里好像看不出来? 2. 用户端app是htt链接,订单状态改变了,乘客怎么及时获取到,app定时的pull订单状态?

    作者回复: 1 司机app重新连接的时候,删除旧的映射,写入新的映射。文中有说明。 2 App在后台的时候通过消息推送通知订单状态,App打开状态定时轮询。

    共 3 条评论
    1
  • Steven
    2022-04-05
    回答问题: 场景1:乘客下单,没有司机接单。 方案:1扩大距离范围寻找合适的司机;2提高司机分成比例,以激励司机接单。 场景2:乘客下单,能接单的司机距离太远 方案:1用户端做好用户体验,时间长和感觉上时间长是两回事;2适当给用户抵值券。 btw,这节课与期中测试题很类似,是应编辑要求提供给大家抄作业的吗?哈哈,开玩笑的。

    作者回复: 赞。 哈哈,大家踊跃交作业啊,自己动手写一个文档,感觉会非常不一样的。

    共 2 条评论
    1
  • ,
    2023-06-12 来自北京
    感觉这个网约车结构跟我现在做的agv调度系统有很多相似之处,比如网约车的订单是以"桶"的形式将乘客与司机进行匹配,在agv调度系统中,也是以轮询的形式,每过多少秒收集一次未执行的任务,与agv的当前坐标进行计算,算出最合适的匹配方式;比如这个订单的状态模型,跟agv任务的状态模型不能说一模一样,简直就是完全一致,看来即便是业务系统,也是有很多相通之处; 至于为什么任务是成批次的下发,也很好理解,如果任务是单个下发的话,视角就会被限制在"订单视角"或者"司机视角",无法达到全局最优,就会遇到"给乘客分配距离最新的司机",还是"给司机分配距离最近的乘客"这样的问题,而如果改变成批处理的话,至少可以得到某一时刻的"全局最优"; 派单过程中的问题,在agv系统中,可能会有任务优先级,任务等待时间,任务要求的车型,agv电量,agv是否可通行等需要考虑的项,我想网约车系统中应该也类似。

    作者回复: 赞

    
    
  • 王辉
    2022-05-02
    老师请教一个问题,希望帮忙解答下: 1.高并发下,如何保证两条订单不会匹配到同一个司机?

    作者回复: 高并发的订单最后都会进入到派单引擎,派单引擎做好司机状态管理就可以,应该没什么技术挑战的。

    
    
  • ABC
    2022-04-28
    其实还需要考虑,乘车安全,用户隐私保护(联系电话),排队问题,这些。 另外有个问题,比如像某导航软件,里面的打车应用聚合了上百家打车软件,他是怎么实现的呢?

    作者回复: 大部分网约车平台都有2B的供应商接口的,通过商务谈判调用接口就可以聚合各家打车服务的。

    
    
  • 逐风
    2022-04-04
    老师能加个餐拓展讲讲本文地理系统的设计吗

    作者回复: 电子地图也是一个比较大的应用类别了,后面有机会可以写一下,也欢迎有兴趣的同学写了发上来,大家一起交流学习。

    
    