论文部分内容阅读
车联网业务除传统的车载信息服务,比如安全保障、远程控制和语音导航等功能,还包括不断创新的服务,比如车队管理、驾驶行为分析、车辆鉴定评估等基于大数据分析的业务。车辆数据的采集与分发是所有这些业务的基石。随着车辆日益增多,需要采集的车辆数据的种类不断增加,车辆数据以亿级数量增加,亟待解决车辆数据采集与存储的性能、按业务服务类型管理采集及分发任务等问题。针对上述问题,本文以国内占领先地位的某车联网信息服务公司的实际项目为背景,在对微服务架构、微服务监控、Kafka消息中间件等相关技术进行分析研究的基础上,设计并实现了一个基于微服务的车辆数据采集与分发系统(以下简称VDCDS系统)。该系统的核心功能包括基于Kafka的车辆数据采集及分发、基于Cassandra的车辆数据存储、基于Spring Cloud Sleuth的任务服务监测等。测试情况表明,该系统是可行和有效的。本文的工作要点如下:1)基于Kafka的车辆数据采集与分发。车联网的车辆数据采集需支持数以千计的数据类型和诸如SOAP、REST、JMS等多种传输协议,采集后的车辆数据需根据业务类型分发给多个下游业务系统。本文提出了一种基于微服务的车辆数据采集与分发任务管理方案,采用Spring Cloud和Kafka框架实现了该方案。测试情况表明,VDCDS系统能够支持百万车辆每秒10万条近50MB车辆数据的采集。2)基于Cassandra的车辆数据存储。车联网的车辆数据存储需支持百万活跃车辆早晚高峰时高并发量的数据上传和以亿级增加的车辆数据数量,支持按照车辆、时间和业务类型的秒级数据查询。本文设计并实现了一个基于Cassandra的分布式车辆数据存储模块。测试情况表明,VDCDS系统可支持每秒10万级的混合读写场景,写入和读取的延迟99.9%情况下都在300毫秒以内。3)基于Spring Cloud Sleuth的服务监测。车辆数据采集、分发和存储服务需支持高可用,需监测服务请求的生命周期时长。本文采用Spring Cloud Sleuth和Zipkin等开源框架设计并实现了服务监测功能。测试情况表明,当服务监测的采样率设置为0.1时,服务的吞吐量约降低0.5%,响应的延迟约增加1%。VDCDS系统可应用在所有需要使用车辆数据的车联网业务中。例如支持车队管理的历史轨迹等基于车辆位置数据的服务;支持驾驶行为分析等基于车辆点/熄火和速度数据的服务;支持车辆鉴定和评估等基于车辆故障诊断和碰撞数据的服务。VDCDS系统的设计和构建能够增强车联网平台各个系统内聚性的同时,保持各个系统之间的松散耦合,从而可以降低各个系统开展新业务功能及维护的成本,增强整个车联网平台的健壮性和可用性。