关于实时交通系统设计的7个问题

近期,由InfoQ组织的Jam 72小时在线脑力风暴活动顺利举行,本次活动主要围绕交通、环境等跟人们生活息息相关的话题进行脑力风暴,试图寻找改善这些问题的Idea。在这次讨论中,“实时交通信息平台和智慧交通信息平台”话题备受关注,InfoQ特邀专家高德交通事业部总经理董振宁、百度主任架构师张绍文等在讨论中发表了精彩的观点。下面是对讨论内容的提炼:

问: 地图数据来源有哪些?

董振宁:高德的数据来源有出租车、使用AMap的导航数据、众包回传数据、“两客一危”数据等。

问: 如何甄别出高质量的数据?当前,移动互联网普及,车联网、物联网、各种智能终端联网,数据来源迅速扩展,带来种类多样,质量良莠不齐的各种数据。怎样才能甄别出真正的高质量,应用对口的数据?

张绍文:关于定位轨迹的数据质量问题,我们是通过以下两个思路来解决: 1. 通过地理信息+交通流领域知识来推算轨迹实际走的路线, 比如路网+最短路线/最匹配时间+HMM等;2. 通过群体轨迹数据类聚来增加数据稠密度以及抗噪能力,比如群体轨迹推算路段间转移概率 for HMM、动态道路速度匹配等。抽象的来说,单纯从某一条位置轨迹所呈现的信息来看,信息量是不够的。 需要通过增加背景/领域知识,以及数据类聚的方式,以提高单条轨迹的信息量,进而起到质量提纯、纠正的目的。

问: 海量数据的实时处理架构如何设计?

张绍文:我们的计算模型,分“批处理计算” 和 “流式计算”。 对于时效性不高,数据规模较大,关注数据吞吐量的,我们会用批处理计算,比如历史轨迹挖掘。 对于时效性高的部分,我们会用流式计算,比如实时交通信息。批处理计算集群,我们用的是hadoop; 流式计算集群,使用公司自主开发的流式计算系统dstream,这个系统具有低延迟高吞吐、高可靠性和高可扩展性等特点,时延在秒级,已经稳定支撑了每天数十亿流量,近十T的数据规模。

董振宁:面对越来越多的海量数据,实时交通信息处理的能力和效率非常关键,特别是要做到实时快速更新(比如1分钟)。所以必须要求系统能容易水平扩展,提高其并发性,能处理大量的数据。每个处理环节尽量做成集群服务方式,通过增加集群的节点来提高其处理能力,从而保证全国海量数据的实时处理。

问:如何进行故障恢复和透明切换?

董振宁:故障恢复是很重要的,业界有很多成熟方案借鉴,利用zookeeper或者事务性分布式存储服务来确定主从。简而言之,就是实现分布式锁,多个节点同时竞争一个分布式锁,成功者为主,提供服务,一旦该服务宕机,就会失去锁的占有权,其他从节点提升为主,继续提供服务。但是要考虑上下游业务如何了解服务的变化,对于企业内网而言,可以考虑使用Kafka等分布式消息队列,解除上下游与业务的直接耦合,达到透明切换的目标。

问: 如何应对数据高峰?

董振宁:在上下班高峰期等数据量暴涨时,数据处理会出现瞬时的峰值。我们在处理时通过数据负载均衡,保证每个节点的处理能力均衡,同时有热备节点,当数据量超过极限时,会启动备用节点承担一部分数据的处理。

问:水平扩展的关键是不是在于处理系统的架构设计上要充分考虑可扩展性,水平扩展是否会有上限?

董振宁:在数据源接入时,按照经纬度坐标将GPS点分配到不同的自定义网格,处理时按照网格为单位进行交通信息处理,每个节点均衡处理一系列网格,这样集群就可以动态水平扩展。水平扩展从理论上是没有上限的,但是考虑到成本,需要充分考虑每个节点的处理能力和均衡性,随着数据量的增加需要增加节点。

问: LBS大数据对地图厂商的挑战?

张绍文:随着LBS数据的迅猛发展,LBS大数据预计在未来几年内会把整个地图和交通领域带入一个新的高度。比如,以交通流为例,之前学术界都是在研究各种各样的复杂经验模型,希望用各种领域经验模型来细致刻画现实世界各种复杂情况,但是效果很一般。 随着交通数据可获取渠道越来越多,数据量越来越大,现在无论是学术界还是工业界,都开始转向大数据方向,用大数据的相关关系等信息来代替复杂的经验模型,不但简化了模型复杂度,效果还比之前更好。这种转变,对地图厂商最大的挑战,就是技术和人才的挑战。大数据时代之前,传统厂商的优势更多在于自己的领域经验,人才也更多是这个专业领域的人才; 而在大数据时代,领域经验和技术会被弱化,人才需求逐渐更侧重于大数据架构、数据挖掘、机器学习相关的人才。这样传统厂商的优势就会逐渐被弱化,甚至之前优势会变成阻碍革新的劣势。

董振宁:LBS数据量的快速增长,对地图厂商的快速更新机制要求很高。我们现在通过众包方式可以快速获得大量的POI及其对应的附属信息,通过地图的自动快速更新机制,就能保证地图的鲜度。

你可能感兴趣的:(关于实时交通系统设计的7个问题)