Netty4 + SpringBoot2 + RabbitMq + Redis + AliOSS 构建高性能粤标主动安全平台

        苏标主动安全协议在2021年迎来一个新的版本粤标主动安全协议标准这个标准是基于jt/t808-2019协议框架的作为一个面向全国的主动安全平台不可能只能接入粤标还要兼容苏标.苏标主动安全协议本身就是一个比较

复杂的混合协议, 808协议指令和报警文件数据流混合在一起给开发者造成了不小的麻烦有点烧脑同时由于其本身业务的复杂度使得开发人员必须要有一定的开发经验结合比较好的设计模式才能构建出来性能良好的网

一般需要几个版本的迭代必须要在实际的大规模车辆接入运营一段时间积累足够多的设备经验才能逐步的成熟稳定下来没有一定规模的设备接入, 就能做出高性能的网关是不可能的事情.单纯的采用SpringBoot + Netty,

只是一个基础, 后面的代码我们仍然要有扎实良好的设计功底,才能做出一个优秀的主动安全平台. 如需购买苏标或粤标主动安全平台源码,请联系2379423771@qq.com

        作为开发者我们必须要解决一下五个设计挑战:

        1) 高性能的主动安全协议通信网关通信框架设计

        2) 苏标主动安全协议和粤标主动安全协议的兼容性设计;

        3) 大数据量高并发存储设计;

        4) 及时的报警推送和处理;

 1.高性能的主动安全协议通信网关通信框架设计

        Netty框架当然是首选这个不用多言作为基础框架我们一般用SpringBoot2整合Netty4框架先为我们的平台打下一个坚实的基础.

       Netty4 + SpringBoot2 主动安全平台

 

       基于Netty4进行协议解析我们必须要清楚设备与服务器之间的通信协议及通信数据格式一个粤标设备一次报警可能与平台直接建立三个连接一个是指令连接两个是数据传输的连接.如下图所示:

设备与主动安全平台直接的连接

2.  苏标主动安全协议和粤标主动安全协议的兼容性设计;

        兼容性设计主要是对于接入设备的报文,由程序自动识别出协议的版本并以此来决定后续的报文数据解析和指令下发如果是粤标的设备,下发的指令亦应是粤标协议格式实际上苏标是采用jt/t 808-2013协议粤标是采用jt/t 808-2019协议所以就是要区分是2013版本还是2019版本.     

3.大数据量高并发存储设计

        粤标主动安全报警文件上传,本质上就是多个设备同时并发连续上传多个文件,对磁盘的IO操作非常的频繁.磁盘存储的成本也非常的昂贵.在阿里云上面扩容一个100G的硬盘每月的成本需要千元.而这对于海量的主动安全报警文件来说都不够塞牙缝.

        一次报警如果平均是4个文件,1M大小,则如果在线有1000台车则每天平均报警一次将会上传1G的文件如果每个车平均上报10则每日有10G的存储需求如果有1万台车就自己算去吧.

        而目前的主动安全设备厂商来说芯片算法很多并不掌握报警的准确性和误报率非常的高如车道偏离报警车距过近报警等这些误报的报警文件,基本上都是垃圾数据却会占用服务器大量的带宽资源和存储成本.

对于平台不存也不行万一里面真有一次车辆碰撞事故呢为了节省存储成本采用云厂商提供的云存储服务阿里云,腾讯云,华为云的OSS云存储费用相对较低但是存储容量也不能一直增长如果一直增长,阿里云也不是活菩萨也会有很多收费陷阱最好30天的生命周期过期数据自动销毁,或者归档.

        所以在设计的时候,要提供和支持本地存储,本地访问,OSS存储和OSS服务.

       主动安全参数设置

4.报警消息的及时推送和报警数据的及时展现.

       这里用到及时是因为一次主动安全的报警我们需要等待所有的报警附件全部上传完毕后进行报警消息的推送做不到实时的推送只能在前端能够及时的展现出来这就要求我们不能等待数据存储完毕才进行消息推送我们在数据接收完毕后进行消息推送这就用到redis框架接收到数据后,及时的放入redis当中前端展现的时候redis中获取而不从存储服务中获取.

 

 

 

标签: , , , , ,
本文的评论功能被关闭了.