安达出行 中国网约车领导者

网约车系统能力解析:安达出行如何做到秒推万级司机?

2017-11-08 13:43:47浏览量:343 标签:   网约车系统开发  

订单匹配系统是网约车系统中的核心环节,它有两个重要的能力:瞬时订单的推送和并发订单的处理,瞬时订单的推送能力影响着打车的速度,直接决定了用户的打车体验;并发订单的处理能力影响着推广活动的成败,也是制约网约车平台服务能力的主要瓶颈。安达出行结合多年的网约车服务经验以及对实际业务的深度理解,针对订单匹配系统做了多达百项的优化,真正做到了秒推万级司机的标准!


推送算法改进

一般情况下,用户在通过提交用车需求的时候,会立即生成上车点的经纬度(X,Y)并随订单提交给服务器,服务器根据该经纬度筛选出一定范围内的可提供出行服务的司机后,通过不断计算、比对乘客与每个司机上车点二者之间相对距离,优先将订单推送给距离较近的司机。这一部分服务器需要做两项工作,一是计算出乘客与附近所有司机的距离;二是从已经计算出的距离结果中选择最小的。然而,安达出行分析发现该过程除了会对服务器造成较大压力之外还会因为过多的计算匹配延长订单匹配成功的时间。后期技术团队为了克服这些问题通过使用Geohash原理存储地理位置,将二维的经纬度数据计算方法转换成字符串相似度匹配,大大节省了司乘配对时间,明显地提高了订单推送效率。

 

Geohash位置存储、相似度匹配】


更有针对性的订单推送

通常情况下,服务器只会把订单推送给在线的司机,因此处于收车状态下的司机不会接到订单推送。但由于即时在出车状态下也不能保证司机端应用进程被杀死或出现其他异常情况,导致司机因无法正常收到接单消息而耽误乘客行程,所以改进后的订单推送系统在推送给在线司机之前会检测一下司机的活跃状态,对于长时间未连接上服务器的司机不会进行订单推送。通过针对性的订单推送设定,能够提高司乘的配对成功率,减少对司机的不必要打扰,缩短乘客的等待时间。

【针对性、智能推送】


贴合业务场景,灵活配置

安达出行总结多年的业务经验以及老客户的服务反馈,为安达专车订单派送系统引入了一套具有针对性并能保持长效运营的重要参考——加权评级。系统会为司机的服务时长、服务里程、乘客评分、司机属性(自营/加盟)等指标计算分数,用户可根据业务需求在后台为不同的指标设置对应的权重,各指标分数和指标权重加权计算之后最终影响司机的等级。订单系统融入该项设计使得派单系统在基于LBS科学高效运营的情况下能够通过灵活配置业务需求,鼓励司机良性发展,促进其完成业务目标,最终收获多赢。

除此之外,为了最大化的配置运输资源,在设计订单派送系统时,安达出行还别出心裁地引入了市面上其他竞品所不包含的订单推送机制,在乘客提交跨城订单的情况下,系统会根据司机当前的状态和定位数据判定是否同为返城路线,在其他条件相同的前提下,安达专车派单系统会优先将订单派送给返城司机。

【灵活、评价机制、良性循环】


稳定可靠的消息通信框架

在技术实现方面,安达出行使用基于JAVA NIO类库的NETTY作为安达专车的消息通信框架和基于HTTP的长连接技术。作为业界最流行的NIO框架之一,NIO具有异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性等优点,基于此,在实现订单秒推100000+司机的同时,确保乘客订单最短时间内被司机接应。而使用长连接,通过长轮询方式实现“服务器推”的技术,弥补HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性,使得乘客之于后台、后台之于司机的讯息能够即时到达,避免因讯息延迟而影响用户体验。

长连接技术、异步非阻塞


可回溯的司机端操作结果

得益于NETTY框架的优点,对于推送到司机端的每一笔订单,后台都能够详细记录被推送司机对该笔订单的具体操作,可以查看司机接单拒单情况。确保发生事件后可回溯至源头。


综上所有关于订单推送系统各方面的产品设计和技术优化,无不体现安达出行团队追求极致的产品态度!通过产品优化,把合适的订单推送到合适的司机手里,减少接单后的改派取消率,提高用户的用车体验和满意度。


更多信息内容请访问安达出行官网:www.andacx.com ,或者搜索“安达出行”关注我们的微信公众号。【网约车平台开发】【公务用车平台开发】【网约车牌照申请】服务热线:400-837-4009。