风监测区间复示系统设计与实现

2021-09-26 08:19新疆维吾尔自治区防雷减灾中心刘兆旭郑国宏张永军
电子世界 2021年16期
关键词:铁路线线程监测

新疆维吾尔自治区防雷减灾中心 刘兆旭 郑国宏 张永军

风监测区间复示系统从数据分析的角度对系统进行优化,并基于大风监测数据进行分析,实现了多路测风站点可靠接入,为管理用户提供了6条铁路线大风实时监测数据显示、数据查询和铁路线设备故障数据显示等功能,为用户提供远程在线监控和在线调测业务需要。

我国地域辽阔,气候千变万化,在铁路运输线路上更是面临复杂的自然灾害及突发事故威胁。乌鲁木齐铁路局所辖兰新铁路西线、北疆线、南疆线,3000多公里的铁路线穿越了安西、山口、十三间房、珍珠泉、八盘磨、阿拉山口等风区。铁路沿线特殊的地理环境又形成了无数风口,大风所起飞沙走石,交通受阻,行人遭殃。大风作为影响新疆铁路运输的主要自然灾害之一,常会刮翻车辆,中断铁路运输,严重地制约了新疆铁路运输的发展。因此,建立高速铁路大风监测与预警系统,对于预防大风事故的发生,确保高速铁路运输安全具有重要的现实意义。国内外针对对铁路大风监测(预警)系统开发已有大量研究成果,例如日本的强风预警系统,我国京津冀铁路大风系统等,都为高速铁路运输安全提供了及时有效的大风监测预警服务。我国的普速铁路风监测既有区间复示系统自2014年投入应用,随着测风站点不断增加以及业务管理模式发生变化,复式系统运行中发生的问题和系统日常运行维护功能已不能满足用户的需求。因而研制具有高度可靠性和安全性、符合当前生产架构及运用维护需求的数据监测系统,从而进一步提高风监测技术保障效率。本文将重点介绍升级后的风监测区间复示系统设计架构和系统功能,从而为沿线铁路路线大风灾害监测和高速铁路运输安全保驾护航。

1 系统的主要技术路线

1.1 系统需具备的主要功能

通过对项目需求的分析,确定了系统主要功能如下:

(1)减少网络波动的影响:设备原有系统存在数据传输通道中断时不断提示10053、10054网络错误,导致系统宕机的现象,复式系统可避免或减少这种现象的发生,提供持续稳定的数据通信服务。

(2)自动跟踪数据中断情况:对管辖的风监测设备数据的连续性、可靠性进行跟踪和记录并将故障设备信息进行报警提示。

(3)风监测设备工况快速查看:可快速查看风监测设备短时变化曲线,了解关键站点变化趋势;同时在需要决策风监测主(备)设备切换时,对比主(备)数据的差异。

1.2 系统技术路线选择

1.2.1 选用Netty框架的理由及技术特点

本项目的主要设计思路之一就是解决因网络通信不稳定引起的网络故障频发和复式系统宕机问题,课题组通过网络查询和技术咨询相结合的方式,对比了Mina和Netty两个流行的网络通信框架优劣性如表1所示。

表1 Mina和Netty两个流行的网络通信框架优劣性对比表

通过对比Mina、Netty两个通信框架发现Netty优势显著,其主要功能特点还包含:支持多种协议通信层(TCP/UDP);API简单易上手开发门槛低市场性价比高;可通过管道流水线自定义信道处理器,将处理过程绑定在流水线上即可实现特定协议处理需求;版本更新频率高,社区活跃,发现bug会被及时修复;Netty官网宣称:“Netty修复了已经发现的所有JDK非阻塞通信BUG”,综上所述选择Netty框架更适合本项目功能开发。

1.2.2 依托Netty搭建高效可靠通信服务

(1)选用异步非阻塞模型达到多路异步双向通信机制,通过多线程提升系统的通信响应能力,通过启用主监听线程处理网络的注册,连接,断线等事务。

(2)选用主副线程池实现核心网络服务数据分离,通过线程池管理模块,管理各网络连接的数据读写,各网络通道都分配独立的处理线程,保证数据互不干扰。

(3)采用成熟的数据缓存中间件,实现数据的可靠存储和高效读取。

(4)通过微服务框架将系统的多个功能模块拆分成了多个微服务程序,每个微服务实现单独的功能,降低每个服务的开发难度,提升每个服务的可用性。微服务是一种服务间松耦合的、每个服务之间高度自治并且使用轻量级协议进行通信的可持续集成部署的分布式架构体系。

2 系统的主要技术实现

系统在技术实现上,核心内容如下:

(1)采用Netty网络框架构建了多路Tcp通道并发处理系统,系统选用异步非阻塞模型通信,数据的读取和写入函数都会立刻返回。在原有系统进行数据处理中常见的10053、10054错误产生的原因有如下:a)可能软件的其它地方关闭了socket而本函数还没有返回;b)可能由于网络故障对端已关闭了连接;c)可能你网络缓存内存访问越界;d)或提前释放缓存。异步非阻塞模型正是解决这一问题的良方,它不论读取还是写入都会立刻完成,如出现异常,也会立刻进入异常处理流程,而不会提示10053、10054的错误。

(2)数据解析处理程序采用了装饰者设计模式,该模式具有以下特点:基于零拷贝设计思想减少了数据复制,提高了数据处理效率,进而提升并发量;统一实现接口,使多种数据的操作具有一致性;具备按需加载处理模块能力,根据数据处理的需要调用不同的处理模块。

(3)传感器等设备故障提示信息的可靠处理是本课题研究的重要内容,在故障信息处理流程中,做到信息处理达到及时准确、分类处理、优先提示等功能需求。经过网络查询和功能对比发现:采用消息队列能很好的实现故障信息流转,同时它又实现了故障数据和操作的解耦合,加强了设备故障处理程序的稳定性。

3 风监测区间复示系统总体架构设计

3.1 系统框架

复式系统采用前后端分离的微服务设计,降低了系统间的耦合度,同时每个服务都设计成了功能单一的模块,提高了系统的内聚性,保证了系统各模块的稳定性,降低了各模块的互相依赖,降低了系统不稳定性的传播。系统结构图如图1所示。

图1 系统结构图设计

3.2 系统主要技术实现

为解决因网络通信不稳定引起的网络故障频发和复式系统宕机问题,本系统采用Netty网络框架构建了多路Tcp通道并发处理系统,基于多线程通信技术,构建通用异步非阻塞式多线程通信模块。同时,数据解析处理程序采用了装饰者设计模式,减少数据复制,提高数据处理效率,进而提升并发量块。另外,采用消息队列,信息处理达到及时准确、分类处理、优先提示等功能需求,解决了传感器等设备故障提示信息。

3.3 数据并发设计

前端设备请求连接处理、信道管理和异常处理由主线程池负责,保证了网络服务始终在线的能力。测风设备数据读取,字符解码,数据分类处理,在网路读线程池内有序进行,读取到有效数据后,将设备的信息通过内建设备信息数据表进行缓存,该表提供了设备名称和网络通道的关联信息,为网络数据写入提供路由,保证了网络写数据的有序进行。

4 软件实现-网络通信微服务

本系统中最关键的是网络通信程序。程序中要处理的核心数据都在网络服务中运转,当网络服务稳定运行时后续的服务才能正常提供。服务端网络服务采用异步非阻塞模型,通过完备的错误捕获和处置机制,解决区间复示系统在网络波动环境下的稳定性问题。核心网络服务通过主副线程池实现,主线程负责客户网络三次握手和连接,连接成功的客户信道将移交工作线程池,工作线程池负责读取网络信道的数据,设备的注册,在网络信道数据读取或写入异常关闭网络信道。同时配置了单独的写数据线程池,实现写数据分离。另外利用sql和nosql数据库实现数据本地存储,采用成熟的数据缓存中间件,为数据的高效可靠存储和服务器端历史数据补缺提供解决方法。实践中采用redis缓存,将多线程读取到的数据可以用毫秒级的速度写入数据库,避免了由于数据库延迟造成通信线程延迟和数据通信延迟造成数据不能及时存储,也避免通信延迟造成的网络缓存堆积和内存泄漏问题。网络通信服务流程如图2所示。

图2 网络通信服务流程

5 系统应用实现

系统主界面可实现兰新线、南疆线,临哈线,哈罗线,奎北线和克塔线共6条铁路线瞬时风速、平均风速等实时监测数据显示、数据查询和铁路线设备的故障数据显示功能。

5.1 数据实时监测和查看模块

数据实时监测和查看模块可显示对应铁路线主用设备和备用设备实时数据显示(如图3(a)所示)。通过点击[A路数据监测]和[B路数据监测]菜单,选择相关站点后可实现对某站当前平均风向和瞬时风向查看(如图3(b)所示)。

图3 (a)实时监测数据显示和(b)站点风向显示

5.2 故障添加模块

故障添加模块可实现对未能及时处理的各类故障进行进一步处理的功能和手工登记故障的功能。主界面右侧为故障事件显示区(见图4),该区域上部显示管理用户未处理完成的事件列表。通过单击事件列表中的数据,可对相应时间进行处理,从而改变事件处理状态。当系统智能判断到某些站点有明确异常和故障时,会弹出事件提示窗口(包含标题,事具体内),使管理用户可快速处理事件。

图4 故障事件显示

5.3 数据查询模块

数据查询模块实现对各铁路线及下属测风点的10min数据进行显示(见图5)。可通过数据查询页面选择铁路线路和其下属查询站点,显示该铁路线下属的测风站点最近10min数据列表(如图5(a)所示)和数据曲线图(如图5(b)所示)。

图5 (a)测站风速数据列表和(b)风速随时间变化图

结论:本复式系统基于网络流行框架Netty构建多线程处理框架,采用双向异步通信方式搭建了以实时数据为中心的服务系统,解决了风监测中网络服务的不稳定问题,提高了风监测系统数据传输的可靠性,实现了多路测风站点可靠接入,并为管理用户提供了6条铁路线瞬时风速、平均风速等实时监测数据显示、数据查询和铁路线设备故障数据显示等功能。基于风监测区间复试系统能实现设备端的远程配置和监控,可以满足用户远程在线监控和在线调测业务的需要。

猜你喜欢
铁路线线程监测
特色“三四五六”返贫监测帮扶做实做细
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
邻近既有铁路线深基坑支护止水施工探讨
欧洲海拔最高的铁路线,美如仙境!
浅谈linux多线程协作
网络安全监测数据分析——2015年12月
网络安全监测数据分析——2015年11月
不穿戴也能监测睡眠
Java的多线程技术探讨