基于微服务的车辆监控系统架构设计与实现
作者:任女尔 陈辰 魏金津
来源:《电脑知识与技术》2018年第17期
摘要:随着智慧交通、智慧城市的发展,以及新能源车辆在国家政策下的监控要求,车辆监控的业务场景需求、并发性能需求、对智能化扩展需求也日益增加和趋于繁复;传统的单体架构和分布式架构已经无法满足需求的快速变化。为此提出了基于微服务的车辆监控系统架构,从性能、扩展性、数据存储等方案完成架构设计和实现。从案例结果表明,在性能、扩展性方面大幅度提升了系统的变化响应能力,并在产品化发展上具有重要意义。
关键词:微服务;车辆监控;高并发;系统架构
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)17-0218-02
1引言
在车辆监控的业务场景中,常见的有1)针对新能源车辆按照国标要求进行监控,由车企
监控到地方政府要求,最终到国家平台监控;2)针对货运车辆的监控,实现对货运车辆位置、安全等内容的监控;3)港口、机场等封闭园区的车辆监控,实现高效的调度和合理管控;4)无人驾驶车辆监控,从而有效地打通监督控制通路。大部分监控需要对数据采取持续收集、存储、处理与分析的方案,同时需要进行如疲劳驾驶、远程控制、车辆状态分析、辅助驾驶、VOC气味管控、视频识别等不同的功能。
微服务项目技术架构 在车辆监控技术体系中,传统方式采用单体式架构,如采用单体的J2EE架构,当并发响应无法支撑时,采用集部署的方式,一般能支撑到百级并发;为了更好地适配变更,部分企业采用了数据采集、解析、存储、分析用不同的应用承担,也就是简单的分布式架构来执行,能够实现多台部署,但是部署方式复杂,支撑到千级并发,运维能力较强的情况下支撑到万级并发;随着SOA、微服务及分布式数据库等技术体系的发展,逐步采用了基于SOA等技术体系的软件设计,但整体架构不支持异构,无法有效地利用资源。提出基于微服务技术的软件架构设计,解决资源充分利用、业务扩展能力要求高、并发变化响应快等问题。
2 2 基于springcloud的微服务技术体系
微服务作为互联网级别当前主流的技术架构,表现了更加稳定、扩展性更强、并发响应
更强的能力【1】。通过将业务进行组件化、服务化分离,每个服务功能简单、可独立集部署,更加灵活和易于调配;耦合度低,再复合上消息队列等技术进行进一步解耦,能够方便地进行业务扩展;服务拆分后,专注的业务领域可以由不同的技术团队执行,更加灵活【2】。
在近几年,形成了以dubbo+zookeeper体系和springcloud体系的微服务技术架构,为企业解决了很多的业务扩展和运维问题。相比dubbo与springcloud技术体系,springCloud的容错和熔断机制更加完整,服务交互的友好性更强;而dubbo的协议比springcloud更低一层,因此性能好一点。但是基于微服务易于扩展的特性,采用springCloud可以轻松的达到性能效果,因此车辆监控系统采用springCloud技术体系完成微服务技术实施。
SpringCloud基于springboot实现非常便捷,它是一套框架与组件的有序集合,其轻量级组件包括Eureka服务发现与治理、HyStrix服务容错与Turbine监控、Zuul服务网关、Config Server服务配置、Ribbon负载均衡、Spring Cloud Bus消息总线、Spring Cloud Sleuth服务跟踪等【3】。
当服务为调用或客户端请求服务时,首先由网关Zuul进行请求控制管理,根据请求服务
的注册内容进行转发;当服务无法满足并发需求时,由Ribbon实现负载均衡处理;服务注册中心Eureka根据请求寻对应的服务【4】;由COnfig Server进行服务的统一配置;消息队列负责服务间解耦通信。此外,由Turbine和Hystrix监控服务健康状态,当有异常时合理处理熔断并进行监控展示;追踪组件记录请求服务的耗时、延误以及网络情况提供优化依据。
3 架构设计与实现
车辆监控的基础架构设计基于微服务技术体系进行,从而方便进行扩展和监控。对应图1中的服务部分,包括netty侦听服务、多线程处理服务、mongodb存储服务,以及在业务展示端的历里程服务、实时定位服务、轨迹回放服务、车辆管理服务、保养推荐服务、日志查询服务、远程控制服务及实施报警服务等。技术架构图如图2所示。
从技术架构图进行设计,数据接口的分布式负载采用LVS与haProxy进行代理,将数据接收、数据解析、数据存储、业务与分析部分的服务均基于springcloud设计为服务,方便进行集扩展与部署,通过容易的技术体系进行注册发现与监控管理【5】。针对每一部分,可以通过监控信息查看负载情况,适当的调整集。其中,mongodb存储部分是分开的,因此针对数据存储的服务接口可以方便地将存储部分切换到新的hbase分布式数据存储架构中,
以适应高并发、大数据量需求。业务架构图展示的从业务的角度如何进行划分设计,如图3所示。
从业务方面,当我们将业务数据进行不同方式的方法的接收、解析和存储,并且将设备最新实时数据及中间的分析结果业务数据存储到redis缓存中。基于数据库与redis完成实时快速响应业务接口。
在业务扩展方面,基于疲劳驾驶部分进行扩展,可以基于存储的原始数据增加离线分析业务进行分析,然后基于springcloud开发按照不同的场景识别的疲劳驾驶方案,如针对连续驾驶时长、车辆的急刹车驾驶数据等【6】,然后调用报警服务接口来实现。整个业务扩展不需要针对其他代码进行改动,直接开发新的服务并调用既有服务即可。
在并发性能方面,如数据解析服务需要计算,当数据由netty接收后调用解析服务,当万级并发是,解析服务需高度负载,因此,可以针对解析服务尽心集节点的快捷增加。因为有统一的服务接口接入,所以netty接收部分无须担心解析性能问题和调用接口是否需要变更问题,能够方便地进行并发性扩展。
4 测试结果
基于微服务进行整体设计以后,系统稳定性大幅度增加,测试10000辆车每s发送1kb数据进行存储展示,定位信息响应时间在45ms以内,轨迹回放在1.23s以内。从5000并发到10000并发进行扩展升级,硬件资源足够的情况下,耗时约25分钟,相比于单体应用和SOA架构是不可能的。因此,基于微服务的车辆监控系统架构达到了对系统的颠覆性改进。
5 总结
微服务在业务扩展性、系统稳定性、并发响应性等方面具有较大的优势,通过构建微服务技术体系,并将车辆监控业务进行服务设计与划分,能够大幅度改善车辆监控对业务场景的适应能力和产品的生存力。
参考文献:
[1] 王方旭.基于Spring Cloud和Docker的微服务架构设计[J].中国信息化,2018(3):53-55.
[2] Fowler M,Lewis J.Microservices.https://martinfowler/articles/m i c r o s e r v i c e s . h t m l . a r t i c l e s /microservices.html.[2014-03-25].
[3] 王方旭.基于Spring Cloud 实现业务系统微服务化的设计与实现[J].电子技术与软件工程,2018(4):60-61.
[4] 韩佼男.浅析微服务架构在企业信息系统构建中的应用价值[J].中国管理信息化,2018(02).
[5] 洪华军,吴建波,冷文浩.一种基于微服务架构的业务系统设计与实现[J].计算机与数字工程,2018(01).
[6] 李永坤.基于微服务架构的智慧停车场系统设计[J].信息与电脑,2018(02).
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论