高速公路运行监测系统研究

2020-03-01 05:34杜文良
西部交通科技 2020年6期
关键词:数据统计高速公路

杜文良

摘要:在高速公路实现取消省界站后,行车计费、收费均实现无人值守,需要对高速公路上的机电设备和收费系统运行状态进行实时监测。文章介绍了高速公路运行监测系统的功能架构,阐述了如何通过RabbitMQ消息中间件接收门架、车道“心跳”数据,并从oracle业务表中同步交易数据到Solr数据库,实现数据分析、数据统计、界面展示功能。

关键词:高速公路;运行监测系统;数据统计

0 引言

全国高速公路撤消省界收费站后,在高速公路上存在交通量变化的路段架设门架,实现各个路段的费用由路段中的门架进行计费处理。由于门架无人值守,因此需要实时监控门架的运行情况,包括收费情况、软件版本、费率版本、车牌识别率等参数的监控,对出现问题的设备应能及时反馈。由于门架数量多,且交易数量非常大,需要上传大量的监控指标。对于实时上传的监控数据需要及时存储和处理,并进行数据统计,以反映各个门架、收费车道系统运行指标情况。本文阐述了如何通过RabbitMQ消息中间件接收门架、车道“心跳”数据,并从oracle业务表中同步交易数据到Solr数据库,实现数据分析、数据统计、界面展示功能。

1 系统架构

系统由门架工控机、车道工控机、机柜动环监控工控机等本地数据采集模块、省数据汇聚中心、监测系统后台、界面展示等子模块构成。门架工控机和车道收费工控机的心跳数据、门架机柜动环监控系统的设备状态数据由本地程序进行收集,并打包成JSON格式,通过非对称方式加密、添加MD5信息摘要后,通过http协议上传至省数据汇聚中心,然后再分发到运行监测系统、稽查系统等模块,由各个子系统进一步对数据进行处理分析。由于高速公路上的门架、车道数量众多,并且需要实时上传“心跳”数据、动环监控数据、交易信息汇总数据等,会产生海量的并发连接,因此需要用消息队列对接收的数据进行缓存,并采用多线程对队列中的数据进行消费处理。在数据统计模块中,由于每分钟要对上千万条数据进行汇总分析,传统的关系型数据不足以支撑这么大的运算量,需要采用Solr进行数据存储和分析,分析结果再发送给前端界面展示模块。

系统架构如下页图1所示。

2 数据采集和上传模块

需要采集的数据包括设备运行情况、软件版本、费率版本、交易成功率等参数,有多层对象嵌套的需求,结构复杂,因此本方案采用JSON格式对上传的数据进行封装。为了使系统更安全可靠地传输数据,采用效率高的对称加密算法对大量数据进行加密。同时,为了保证通信数据的完整性,采用MD5对数据进行签名。

考虑到各种数据类型的重要程度、获取方式不同,对各类数据采集时间和上传时间间隔分别用不同方案。如工控机状态数据、动环监测数据,采用固定时间间隔去采集;对于交易数据,则把每次交易数据进行记录[1]。

为了解决动态扩展连接并发量的问题,省汇聚中心采用nginx负载均衡接收上传数据,并分发到各个子系统。

3 消息中间件

由于全省高速公路门架和收费车道工控机数量多,需要频繁的采集设备“心跳”数据、动环监控数据和交易数据等并上传中心平台。为了不至于在访问高峰期造成后台应用程序性能过载,采用消息队列实现上传数据的缓存。設计采用RabbitMQ作为项目的消息中间件,它是一个开源的消息中间件,可以接受、存储和转发二进制的数据消息块。

首先在运行监测系统后端编写一个发送消息的程序,作为生产者;再编写一个消息消费者,消费者是一个等待接收消息的程序。前端上传的设备“心跳”数据,经过省汇聚中心后,发送到消息队列的生产者端,消费者尝试从队列接收数据。根据数据并发量和主机性能情况,应用程序可以既是生产者又是消费者,也可以部署在不同主机上。由于应用程序采用Java语言开发,因此消息应用采用Java客户端接口。首先需要导入相关类,设置类并命名队列;然后创建到服务器的连接,处理协议版本协商和身份验证等。额外的DefaultConsumer是一个实现消费者接口的类,将使用它来缓冲服务器推送来的消息。因为服务器将异步地推送消息,所以我们以对象的形式提供一个回调(DeliverCallback),它将缓冲消息,直到应用程序准备好使用它们,由此完成消息中间件接口程序的设计。

4 数据存储方案

有两种数据源的数据需要存储到系统的数据统计分析模块数据库,一个是前端门架和收费车道相关应用程序上传的“心跳”数据、动环数据等,另一个是ORACLE业务数据库中的数据定期同步。由于监控设备“心跳”数据、动环检测数据以及其它的监测数据属于不会变动的静态数据,因此只作为数据统计、分析之用。而本设计需要项目中实现全文搜索、命中高亮显示、分面搜索、动态集群、数据库集成等功能,经过综合分析,Solr是流行的、快速的开源NoSQL搜索平台,符合系统对数据存储平台的要求,因此本设计方案采用Solr存储方案。

将Solr部署在Linux系统上,JDK需要安装Java8或更高版本上[2]。因为Solr的基本信息单位是一个文档,它是描述某物的一组数据。文档由字段组成,字段是更具体的信息片段。我们根据上传的JSON数据,定义数据的相应字段类型,使得Solr能够正确地解释字段和查询字段。有多种将数据加载到Solr的方法,由于本方案采用Java作为后台开发语言,因此采用Java客户端API编写自定义Java应用程序来获取数据。

5 界面展示

设备状态数据、数据指标和分析结果在前端界面进行展示。

5.1 大屏系统

主要是在用户监控大屏上显示各个门架和收费站在GIS地图上的位置图标。地图上只显示用户具有权限的门架和站点数据,点击相应图标,可以进入详情页,查看具体门架和收费车道的各项分析数据。可以在系统配置项中配置各个数据的告警阈值,如果某项数据达到告警阈值范围,则该门架或者收费车道的图标显示为红色,并在详情页显示告警原因。系统应及时将后端告警及时反馈到前端界面,由于数据量巨大,如果使用html页面定时向后台请求告警数据以对界面数据进行更新,这将耗费大量的网络带宽,并且对服务后台和数据库造成巨大性能损耗。因此设计采用WebSocket协议实现前端html和后台系统建立可以双向通信的通道,后台把更新的告警数据主动发送到前端界面,如果数据没有变化,则不需要发送。

5.2 统计报表

功能项包括ETC交易统计、CPC卡计费统计、车牌识别统计、OBU交易统计、门架天线统计等项。为了更生动展示各项数据指标,采用开源JS框架-ECharts实现以柱状图、折线图、饼图、气泡图及四象限图等图表的形式展现各项数据。设计报表打印功能模块,用户可以根据需要,对报表进行样式定义并打印输出。

5.3 系统配置

功能项包括设备维护、阈值管理、用户权限等。设备维护可以通过添加中心机房重要的核心交换机、服务器等设备的连接信息,获取该设备的状态数据。阈值管理是对设备状态数据、各项交易指标等采用正则表达式定义告警的方式,并设置告警的范围。用户权限可以配置用户属于哪个组织架构,以及登录信息、角色、权限等。用户以相应的账户登录后,只能看到所属组织架构的路段信息。

6 系统测试

前端编写模拟客户端发送等同实际生产环境中大小JSON数据的程序,再采用10台计算机,每台计算机分别开启1000个线程同时运行数据发送测试程序,发送数据的间隔为1min。同时部署两台RabbitMQ的消息服务器,并配置了负载均衡,进行消息接收和分发。采用一台计算机作为后台逻辑处理服务器对消息进行消费和处理,其上开启4个线程消费消息,对JSON数据进行解析后存入Solr数据库,Solr部署在另外一台独立服务器上。

经过24h平均每分钟10000个并发访问量的测试,服务端数据接收正常,RabbitMQ的消息能够被及时消费,并存入Solr数据库,并没有数据过载或积累现象。同时在Solr数据库中插入1000万条数据,并对该数据集进行聚合统计实验,响应时间均在2s以内,完全满足系统需求。

7 結语

在高速公路取消省界收费站后,行车计费、收费均实现无人值守,提高了高速公路机电系统智能化水平。但是,机电设备故障后,如果不能及时修复,对高速公路收费系统的运行影响巨大,因此,需要对高速公路上的机电设备和收费系统运行状态进行实时监测。高速公路运行监测系统的设计和应用,将会为广西高速公路机电运行状况和收费系统运行的监控、运维提供有力的保障。

参考文献:

[1]邵 娟.城市道路智能电子收费技术标准体系研究[C].中国城市规划学会城市交通规划学术委员会.创新驱动与智慧发展——2018年中国城市交通规划年会论文集.中国城市规划学会城市交通规划学术委员会:中国城市规划设计研究院城市交通专业研究院,2018.

[2]郑贺元.基于Solr技术的专利检索系统设计与实现[D].石家庄:河北科技大学,2019.

猜你喜欢
数据统计高速公路
工程塑料防眩板在桂柳高速公路中的应用
大雪
为什么高速公路上不用路灯照明
大数据与大数据经济学
山西省不同导线电线积冰特征对比分析
轱辘心儿,高速公路上的猫